แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - golfreeze

Pages: [1] 2 3 ... 141
1
command , shell script ,tool , crontab / Re: basic command for xargs
« on: กรกฎาคม 28, 2021, 10:22:31 PM »
1.txt
2.txt
3.txt
4.txt
5.txt

ทำการ rename นามสกุลไฟล์จาก .txt -> .text

ls | cut -d. -f1 | xargs -I {} mv {}.txt {}.text

เท่านี้ก็จะได้เป็น
1.text
2.text
3.text
4.text
5.text

 8)

2
หรือจะเขียนให้ อนุญาตแค่ ไฟล์ตระกูลรูปภาพ ที่เหลือ deny ทั้งหมดก็
order allow,deny
<Files ~ "\.(jpg|jpeg|png|gif|pdf|txt|bmp)$">
   allow from all
</Files>

3
=== postgres force drop database
If found error :
 database "boss_v2" is being accessed by other users
 DETAIL:  There are 2 other sessions using the database.

==fixed by force drop
REVOKE CONNECT ON DATABASE boss_v2 FROM public;
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'bot’;
==and drop again
drop database boss_v2;

===when create found problem try to template0
CREATE DATABASE dbname TEMPLATE template1;
=If template1 is not available or corrupted, you can use template0 as last resort:
CREATE DATABASE dbname TEMPLATE template0;

ลองกันดูนะครับผม  8)

4
นำค่าของตำแหน่งสุดท้าย(จำนวนเงิน) มารวมกัน และเอาค่า , ออก แล้วมา sum ดูว่าเป็นทั้งหมดเท่าไร เช่น
sum.txt
05/06   20.00 USD CLOUDFLARE HTTPSWWW.CLOU US   06/06   641.84
07/06   TOPS-PIN KLAO BANGKOK TH        07/06   2,127.50

cat sum.txt | awk -F/ '{print $NF}' | awk '{print $2}' | sed 's/,//g' |  paste -sd+ | bc

5
==== Do on agent site ====
##download checkMYSQLProcesslist.sh
https://support.nagios.com/forum/download/file.php?id=3124&sid=a03b04c54e4889c5a0b37aeff9bc9027

==add in nrpe.cfg
command[check_mysql_query]=/usr/local/nagios/libexec/check_mysql.sh

==create 1 db and 1 table and insert 1 query to check access
CREATE TABLE `status_nagios` (
  `id` int(3) NOT NULL,
  `name` varchar(14) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `status_nagios`
--
INSERT INTO `status_nagios` VALUES (1,'statusnagios');

==== Do on nagios server =====
# Define check mysql_query on devnagios
define service{
        use                             local-service         ; Name of service template to use
        host_name                       devnagios.packetlove.com
        service_description             Check_Mysql_query
        check_command                   check_nrpe!check_mysql_query
        }

6
ในกรณีถ้า ไม่สามารถรัน recovery mode 1-6 แล้วยัง error อยู่ให้ทำการตั้งสติให้มั่น และใช้วิธี ใช้ tool
ในการดึงข้อมูลครับ ซึ่งบอกเลยว่าวิธีนี้ จะ advance หน่อย
แต่ถ้ามีพื้นฐานในการ compile source มาดีก็จะผ่านได้ครับ เริ่มจาก download tool undrop
https://twindb.com/undrop-for-innodb/
https://twindb.com/recover-corrupt-mysql-database/

ผมใช้ env เป็น centos 7.x และลง Mysql-server 5.6 ครับซึ่งจะมี tool innodb ให้ใช้งานค่อนข้างเยอะและเสถียรแล้ว

==== install new Mysql 5.5
http://repo.mysql.com/yum/mysql-5.5-community/el/7/x86_64/
https://www.cyberithub.com/install-mysql/

==== install undrop
git clone git@github.com:twindb/undrop-for-innodb.git
yum install make gcc flex bison

ทำการ make ก่อนเพื่อให้ได้
หลังจาก make เสร็จ ก็จะได้
 
stream_parser
c_parser

มาครับ
ทำการ copy ibdata1 จากเครื่องที่ corrupted หรือ harddisk มีปัญหามา ในกรณีของผมเป็นการรวมไฟล์ อยู่ในไฟล์เดียวคือ ibdata1
และ innodb_file_per_table=0 
แล้วทำการ รัน
./stream_parser -f ibdata1

จะได้ไฟล์ตัวที่เป็น INDEX และ BLOB มาครับ ใน folder
/root/undrop-for-innodb/pages-ibdata1
[PKL@db2 pages-ibdata1]# ls -lah
drwxr-xr-x  2 root root 300K Jun  6 19:56 FIL_PAGE_INDEX
drwxr-xr-x  2 root root 4.2M Jun  6 19:56 FIL_PAGE_TYPE_BLOB

ซึ่งถ้าเราเข้าไป string file ดูก็จะเห็นเป็น raw data อยู่ใน folder: FIL_PAGE_INDEX ครับ
# strings 0000000008664211.page
String 0000000008664211.page
==check  innodb
show variables like 'innodb_file_per_table';
./c_parser -f pages-ibdata1/FIL_PAGE_INDEX/0000000008671378.page -t dictionary/member_golf.sql

==== step1 begin here =====
./stream_parser -f ibdata1

===ทำการเชคจาก table name จาก 0000000000000001.page ก่อน
./c_parser -4 -f pages-ibdata1/FIL_PAGE_INDEX/0000000000000001.page -t dictionary/SYS_TABLES.sql
000082B5C909    5400001D8F1CD8  SYS_TABLES      "PKL\_sabye/member"        3336397 69      1       0       0       ""      0
000082B5C912    59000185BB2B9C  SYS_TABLES      "PKL\_sabye/received\_thb" 3336398 3       1       0       0       ""      0
000082B5CAB0    6A0000E78C06CE  SYS_TABLES      "PKL\_sabye/transfer\_transaction" 3336399 42    3336398

==== step2 for ทำการค้นหา INDEX ของ table: member
./c_parser -4 -f pages-ibdata1/FIL_PAGE_INDEX/0000000000000003.page -t dictionary/SYS_INDEXES.sql | grep 3336398
000082B5C90D    D600019E61014F  SYS_INDEXES     3336398 8671379 "PRIMARY"       1       3       0       41052
SET FOREIGN_KEY_CHECKS=0;
LOAD DATA LOCAL INFILE '/home/centos/undrop-for-innodb/dumps/default/SYS_INDEXES' REPLACE INTO TABLE `SYS_INDEXES` CHARACTER SET UTF8 FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"' LINES STARTING BY 'SYS_INDEXES\t' (`TABLE_ID`, `ID`, `NAME`, `N_FIELDS`, `TYPE`, `SPACE`, `PAGE_NO`);
-- STATUS {"records_expected": 7615, "records_dumped": 7457, "records_lost": true} STATUS END
Primary = 8671379

====step3 : for received_thb.sql dump export to sql file with position 0000000008671379
./c_parser -6f pages-ibdata1/FIL_PAGE_INDEX/0000000008671379.page -t dumps/received_thb.sql > dumps/default/received_thb 2> dumps/default/received_thb.sql

==step4: for member.sql
./c_parser -4 -f pages-ibdata1/FIL_PAGE_INDEX/0000000000000003.page -t dictionary/SYS_INDEXES.sql | grep 3336397
000082B5C904    D10001532C06B9  SYS_INDEXES     3336397 8671378 "PRIMARY"       1       3       0       152194

===step5: generate and import data
./c_parser -6f pages-ibdata1/FIL_PAGE_INDEX/0000000008671378.page -t dumps/member.sql -b pages-ibdata1/FIL_PAGE_TYPE_BLOB -o dumps/default/member5 -l dumps/default/member5.sql

===step6: load data to file
cd dump
mysql --local-infile -uroot -p
source member5.sql
show create table member;

เท่านี้ก็จะได้ข้อมูลจาก table: member ออกมาละครับผม
ขอจงอย่าล้มเลิก ยาก แปลว่าทำได้ สู้ๆ ครับ ^_^  8)

ทีมงาน R&D
กอล์ฟ [at] Packetlove[dot]com

7
ถ้าเป็น ubuntu18 สามารถตั้งค่าในนี้ ได้ หรือจะมาเชคก่อนก็ได้ว่าค่าเป็นอะไรนะครับผม
==/etc/apt/apt.conf.d/90curtin-aptproxy
Acquire::http::Proxy "http://user:pass@proxy.com:8080";
Acquire::https::Proxy "http://user:pass@proxy.com:8080;

ทำการ netplan apply แล้วลองออกเนตดูนะครับ

8
===step after dashboard done => https://docs.securityonion.net/en/2.3/logstash.html
ถ้าเจอว่า master node ไม่สามารถค้นหาได้ และเกิด error
"Error: Could not locate that index-pattern-field (id: @timestamp)"

# ls -la /opt/so/conf/logstash/pipelines/manager
total 20
drwxr-xr-x 2 logstash socore 4096 May 22 23:57 .
drwxr-xr-x 4 logstash socore 4096 May 29 23:42 ..
-rw-r--r-- 1 logstash socore   69 May 22 23:57 0009_input_beats.conf
-rw-r--r-- 1 logstash socore 1065 May 22 23:57 0010_input_hhbeats.conf
-rw-r--r-- 1 logstash socore  206 May 22 23:57 9999_output_redis.conf

# ls -la /opt/so/conf/logstash/pipelines/search
total 44
drwxr-xr-x 2 logstash socore 4096 May 29 23:42 .
drwxr-xr-x 4 logstash socore 4096 May 29 23:42 ..
-rw-r--r-- 1 logstash socore  180 May 29 23:42 0900_input_redis.conf
-rw-r--r-- 1 logstash socore  372 May 29 23:42 9000_output_zeek.conf
-rw-r--r-- 1 logstash socore  351 May 29 23:42 9002_output_import.conf
-rw-r--r-- 1 logstash socore  342 May 29 23:42 9034_output_syslog.conf
-rw-r--r-- 1 logstash socore  392 May 29 23:42 9100_output_osquery.conf
-rw-r--r-- 1 logstash socore  341 May 29 23:42 9400_output_suricata.conf
-rw-r--r-- 1 logstash socore  370 May 29 23:42 9500_output_beats.conf
-rw-r--r-- 1 logstash socore  338 May 29 23:42 9600_output_ossec.conf
-rw-r--r-- 1 logstash socore  359 May 29 23:42 9700_output_strelka.conf

2. ใส่ค่าเพิ่มใน /opt/so/saltstack/local/pillar/global.sls
logstash:
  pipelines:
    manager:
      config:
        - so/0009_input_beats.conf
        - so/0010_input_hhbeats.conf
        - so/9999_output_redis.conf.jinja
    search:
      config:
        - so/0900_input_redis.conf.jinja
        - so/9000_output_zeek.conf.jinja
        - so/9002_output_import.conf.jinja
        - so/9034_output_syslog.conf.jinja
        - so/9100_output_osquery.conf.jinja
        - so/9400_output_suricata.conf.jinja
        - so/9500_output_beats.conf.jinja
        - so/9600_output_ossec.conf.jinja
        - so/9700_output_strelka.conf.jinja

3. restart logstash
# so-logstash-restart

4. restart elasticsearch
# so-elasticsearch-restart

====located for salt pipeline config
/opt/so/saltstack/default/salt/logstash/pipelines/config/so

===>after configure pipeline into global.sls then docker will start on choose pipeline and keep configure on path below.
 /opt/so/conf/logstash/pipelines/search

===docker command check inspect 
docker inspect so-logstash

เท่านี้พวก log ใน dashboard kibana ก็จะแสดงขึ้นมาครับผม

9
Package on mac / Re: mac check battery and life cycle via command line console howto
« on: พฤษภาคม 26, 2021, 08:30:09 PM »
==วันนี้ได้ทำการเปลี่ยน Battery MacBookPro ที่สั่งซื้อมาใหม่เสร็จครับ
แล้วรันเชค MaxCapa กับ Cycle ดูจะขึ้นเป็น MaxCapa = 6880 , CurrentCapa = 6868
และ Cycle Count = 1  เยี่ยมไปเลย ลองดูกันว่าจะใช้ได้กี่ปี  : )

#ioreg -l -w0 |grep Capacity
    | |           "AppleRawCurrentCapacity" = 6868
    | |           "AppleRawMaxCapacity" = 6880
    | |           "MaxCapacity" = 6880
    | |           "CurrentCapacity" = 6868
    | |           "LegacyBatteryInfo" = {"Amperage"=18446744073709551318,"Flags"=4,"Capacity"=6880,"Current"=6868,"Voltage"=12274,"Cycle Count"=1}
    | |           "DesignCapacity" = 6559
    | |           "BatteryData" = {"StateOfCharge"=25600,"Voltage"=12594,"QmaxCell1"=46882,"QmaxCell2"=33570,"DesignCapacity"=6559,"QmaxCell0"=38946,"CycleCount"=1}

10
all application on unix knowledges by golfreeze / Re: install redis on centos7 directadmin
« on: พฤษภาคม 26, 2021, 10:54:26 AM »
##tunning kernel support high connection for redis
echo never > /sys/kernel/mm/transparent_hugepage/enabled
sysctl -w net.core.somaxconn=65535

11
==== add new disk (sdb) to vg LVM
fdisk /dev/sdb
n
p
1

=change type to LVM as 8e and write save config
t
8e
w

==create pv
pvcreate /dev/sdb1
y
vgextend ubuntu-vg /dev/sdb1
lvextend -L +32G /dev/mapper/ubuntu--vg-ubuntu--lv
xfs_growfs /dev/mapper/ubuntu--vg-ubuntu--lv


12
== How to Extend disk in LVM

==df -h for extend disk "ubuntu--vg-ubuntu--lv "
/dev/mapper/ubuntu--vg-ubuntu--lv   66G  5.9G   30G  10% /

==check vg display
vgdisplay ubuntu-vg
  Alloc PE / Size       8832 / 34.50 GiB
  Free  PE / Size       8831 / <34.50 GiB

==extend +32G disk space
lvextend -L +32G /dev/mapper/ubuntu--vg-ubuntu--lv

==resize
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

==check disk again after extend successful
/dev/mapper/ubuntu--vg-ubuntu--lv   66G  5.9G   57G  10% /

13
==== found error mysql could not start ==== tail -f /var/log/mysql/mysqld.log
2021-05-23T15:26:05.167047Z 0 [System] [MY-010910] [Server] /usr/libexec/mysqld: Shutdown complete (mysqld 8.0.21)  Source distribution.
2021-05-23T15:27:10.587795Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 10000 (requested 25980)
2021-05-23T15:27:10.587801Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 2397 (requested 4000)
2021-05-23T15:27:10.821955Z 0 [System] [MY-010116] [Server] /usr/libexec/mysqld (mysqld 8.0.21) starting as process 5593
2021-05-23T15:27:10.829416Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-05-23T15:27:10.847916Z 1 [ERROR] [MY-012263] [InnoDB] The Auto-extending innodb_system data file './ibdata1' is of a different size 0 pages (rounded down to MB) than specified in the .cnf file: initial 32000 pages, max 0 (relevant if non-zero) pages!
2021-05-23T15:27:10.848094Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
2021-05-23T15:27:11.348117Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2021-05-23T15:27:11.348381Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.

===>ทำการแก้ไขโดย
vi /etc/my.cnf.d/mysql-server.cnf
[mysqld]
innodb_data_file_path = ibdata1:20M:autoextend

cd /var/lib/
mv mysql mysql.ori
systemctl restart mysqld

mysql -p
create database newdb;

mysql_secure_installation
ตั้งรหัส root ใหม่

import db:
mysql -uroot -p newdb < newdb.sql

14
การมีระบบ SIEM ทำให้เราวิเคราะห์การโจมตีได้ก่อน บางทีจะมี log ที่เป็นลางบอกเหตุมาก่อน เมื่อเห็นทันและทำการยกระดับการป้องกันได้ทัน ปัญหาที่จะส่งผลกระทบขนาดใหญ่ และสามารถมีแนวทางการป้องกันที่ชัดเจน ก็ทำให้ความรุนแรงและผลกระทบทุเลาลงไปได้ครับ

=== Snort rule และระบบ Blueliv Threat Context สามารถจับพฤติกรรม ของ ransomware Avaddon ได้ก่อนจาก กลุ่ม ip ของ campaign นี้
ET TROJAN Win32/Avaddon Ransomware Style External IP Address Check

15
====Firo-> Earn-> Lock Staking
เมื่อเรามีเหรียญ Firo 100 เหรียญ
เราสามารถทำการฝากกับ Binance โดยเข้าที่เมนู Earn
แล้วทำการ Locked Staking ได้ครับ
โดย เรตของดอกเบี้ย ณ วันที่ 12May2021 จะเป็น 5.78% ต่อปี ย้ำว่าต่อปีนะครับ แต่ข้อดีก็คือ ทาง Binance จะคิดเรตดอกเบี้ยเป็นรายวันได้ ครับ

==check เรต earn
https://www.binance.com/en/pos

====Firo -> Redeem
จะได้ดอกเบี้ยเป็นรายวัน
แต่ถ้าต้องการ redeem Firo ดอกเบี้ยและเอาเหรียญที่ฝากไว้ ออกจาก earn process
จะต้องกดที่ “Redeem” แล้วใช้เวลารอประมาณ 24-48 ชม เพื่อให้ได้ดอกเบี้ยที่ earn ไว้ เข้ากระเป๋าของคุณ
แล้วจำนวน Firo ที่ลงไว้ 100Firo จะกลับเข้า Spot Wallet ใช้เวลาประมาณ 24-48 ชม เช่นกันครับ

====ยังไงถ้าเพื่อนๆคนไหนสนใจ ก็ลองหาข้อมูลเพิ่มเติมดูนะครับ
https://www.binance.com/en/pos
https://firo.org/community/

 ;)

Pages: [1] 2 3 ... 141