跳到主要内容

知识碎片

  1. Windows 被禁用账户的 hash 格式:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0

  2. 永恒之蓝影响的操作系统版本:Windows XP 到 Windows Server 2016 都受影响。

  3. Powershell 脚本执行策略查询:Get-ExecutionPolicy

  4. 字典

    1. 字典仓库:PentesterSpecialDictwordlistsSecLists
    2. 用户名字典:/usr/share/seclists/Usernames/xato-net-10-million-usernames-dup.txt
    3. 密码字典
      1. 通用字典:(10k)/usr/share/seclists/Passwords/Common-Credentials/10k-most-common.txt、(100k)/usr/share/seclists/Passwords/Common-Credentials/100k-most-used-passwords-NCSC.txt、(500k)/usr/share/seclists/Passwords/xato-net-10-million-passwords.txt、(10000k)/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt
      2. 应用默认字典(tomcat、mysql、mssql 等应用):/usr/share/seclists/Passwords/Default-Credentials/*
      3. 面向各国家的字典(中国):(4000k)/usr/share/seclists/Passwords/Common-Credentials/Language-Specific/Chinese-common-password-list.txt
    4. 目录字典:(200k)/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt、(50k)/usr/share/seclists/Discovery/Web-Content/raft-large-directories-lowercase.txt
    5. 子域名字典:(11k)/usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt、(1k)/usr/share/seclists/Discovery/DNS/services-names.txt
    6. URL 参数字典:/usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt
    7. 文件类型后缀字典:(备份类)/usr/share/seclists/Discovery/Web-Content/web-mutations.txt、(语言类)/usr/share/seclists/Discovery/Web-Content/web-extensions.txt
    8. API 字典:/usr/share/seclists/Discovery/Web-Content/api/objects.txt
  5. 当攻击机与域控的时间相差过大时,攻击机在域控的很多操作可能会受到影响。为此,可通过命令 ntpdate 192.168.56.128 校正攻击机的时间,以保持和域控机器时间差距不要过大。【同步成功的前提是:目标的时间服务已开启 sc query w32time。通常 Windows Server OS 默认都是开启的。】

  6. 转储 SAM/SYSTEM/SECURITY 文件时,其中 SECURITY 文件中保存着本机 LSA 中的缓存哈希,一般是宿主机机器账户的哈希,但 impacket-secretsdump 输出的标识是 $MACHINE.ACC,实际指的是类似 DC$ 的机器账户。

  7. mysql 脚本化用法。

    #用法一
    mysql -u root -N -B > /dev/null 2>&1 << EOF
    use wordpress;
    update wp_options set option_value="$IP" where option_name="siteurl";
    update wp_options set option_value="$IP" where option_name="home";
    EOF

    #用法二
    mysql -uroot -proot -e 'use SkyTech;select * from login;'。
  8. Linux 开机即运行脚本的服务配置。

    #用法一
    cat /etc/systemd/system/ip.service

    [Unit]
    Description=Write current ip addr to /etc/issue

    [Service]
    Type=oneshot
    RemainAfterExit=true
    ExecStart=/home/oscp/ip

    [Install]
    WantedBy=multi-user.target

    #用法二

  9. 影子文件 /etc/shadow 即便被删的只剩一行用户(passwd 用户保持原样),那么仅剩的这行用户的认证也是可以正常进行的。

  10. 计划任务提权时的脚本:if [ ! -e /tmp/bash ];then cp /bin/bash /tmp/bash;chmod 7777 /tmp/bash;fi

  11. Sudo 免密提权设置:echo "www-data ALL=(ALL)NOPASSWD:ALL" >>/etc/sudoers【sudoers 文件格式:sudo 使用者帐号 登入者的来源主机名称 =(可切换的身份) 可下达的指令】

  12. Sed 技巧【当 shell 环境无法使用 vim、nano 等编辑器时】:

    cat <<EOF>> test.txt #批量追加输入
    cat <<EOF> test.txt #批量覆盖输入
    echo "str" >> test.txt #逐行输入
    sed -i "/regex_exp/d" test.txt #删除匹配行
    sed -i "$d" test.txt #删除最后一行
    sed -i "5s/old/new/" test.txt #替换第 5 行字串中的 old 为 new
    sed -i "s/old/new/" test.txt #替换全文中的 old 为 new
    sed -i "$a str" test.txt #在最后一行之后追加行
    sed -i "$i str" test.txt #在最后一行之前插入行

    #注意:-i 选项会直接修改被操作文件,不加参数则不修改文件且会进行测试输出预览。
  13. SSH 技巧:(1)非交互式执行命令:ssh name@1.1.1.1 "id"。(2)强制分配伪终端:ssh -t name@1.1.1.1 "/bin/sh"。【该方法对于那些需要交互操作的一次性命令来说甚好,如 ssh -t name@1.1.1.1 "vim test.txt"

  14. SSH 免密登录注意事项:在 生成公私钥->创建.ssh 目录->新建 authorized_keys 文件 的这个过程中,关于文件/目录的权限有很大讲究,并非只要权限都是 777 便可以畅通无阻。【实测如下:(1)私钥使用 ssh-keygen -t rsa 产生,并手工上传;.ssh 目录的权限是 755,authorized_keys 的权限是 644,私钥的权限是 600。(2)通过 ssh-copy-id -i id_rsa.pub root@1.1.1.1 自动上传,观察目录/文件权限如下 .ssh 目录的权限是 700,authorized_keys 的权限是 600,私钥的权限是 700。 】

  15. SSH 算法协商失败解决办法:ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa 1.1.1.1【报错:no matching host key type found. Their offer: ssh-rsa,ssh-dss】

  16. 踪迹清理

    #命令历史自动清理
    ln -s /dev/null ~/.bash_history
  17. John 使用技巧:

    #用法一:生成字典
    #根据自定义的格式生成密码字典。规则用法参考 https://www.openwall.com/john/doc/RULES.shtml
    john --mask="pre?u?d?d?l?l?post" --stdout > password.txt
    #根据字符集生成指定长度的密码字典
    john --subsets="abcdefg" --length=2 --stdout > password.txt
    #根据字符集生成指定范围长度的密码字典
    john --subsets="abcdefg" --min-length=1 --max-length=2 --stdout > password.txt

    #用法二:生成哈希【生成 phpass 类型的哈希】
    /usr/share/john/pass_gen.pl phpass

    #用法三:破解哈希
    john --format=pkzip --wordlist=password.txt zip.hash

  18. Agg 调优参数:docker run --rm -v $PWD:/data agg.slim:latest --idle-time-limit 2 --rows 24 --cols 80 --font-size 18 thefuck.casc thefuck.gif